python

PILで_imagingftのインポートエラーが出た場合

PILでTrueTypeFontを使おうとすると、環境によっては raise ImportError("The _imagingft C module is not installed")というエラーが出る。 要はPILのコンパイル時にFreeType2がインストールされていなかった事が原因。 Linux(OpenSuse)ならば、「freetype2…

matplotlibで面グラフを書く

適当なグラフですみません。 from pylab import * x = range(10) y1 = list(sin(x)) y2 = [sin(i)-0.2 for i in range(10)] fx = x + x[::-1] fy1 = y1 + y2[::-1] fy2 = y2 + [-1 for i in range(10)] ylim(-1) fill(fx,fy2, fx,fy1) plot(x, y1, "go", x, …

Pythonで配列内の重複する値を抽出する方法

Rubyで配列内の重複する値を抽出する方法 - 久保清隆のブログ確かに「重複した値が知りたい」ときって、結構あるんですよね。 Rubyにはinjectという記法(?)があるんですね。 じゃあ、Pythonだとどうなるんだろうと考えてみました。 a = [1, 2, 3, 4, 5, 5, 1…

OpenSuse11.4でChromeをインストール

FireFox5に嫌気がさしたので、OpenSuse11.4でChromeをインストールしたのでメモ。インストール自体は簡単で、以下のサイトからRPMをダウンロードするだけ。http://www.google.co.jp/chrome/インストールは無事に完了するが、Chromeが立ち上がらない・・・ ど…

wxPythonでクリップボード操作

wxPythonでクリップボードで少しハマったのでメモ。wxPythonでクリップボード操作をググると、wx.Clipboard()を生成する方法が出てくる。 だが、OpenSuse11.4だとSetData()をするとアプリが終了しなくなるという現象が発生した。 ドキュメントを調べるとwx.T…

PILで"decoder jpeg not available"というエラーが出た時

OpenSuseでPILを使った時にこんなエラーが出たのでメモ。どうやらeasy_install時にlibjpeg-devがない場合にこんなエラーが出る模様。 まず、libjpeg-devをインストール(環境によって最適なパッケージを入れてください) sudo zypper in libjpeg62-devel現在…

新しいファイルだけ上書きコピーする

今までshutilとかでチマチマやってたけど、Windowsなら「xcopy」コマンドを使えばよい事に気付いた。 主なオプションは以下の通り。 /D 新しいファイルだけをコピー /S /E サブフォルダもコピー /H 隠しファイルもコピー /C エラーを無視してコピー /Y 無条…

wxHTMLのメモ

#!/usr/bin/local/python # -*- coding: utf-8 -*- import sys import os import wx import wx.html from wx import xrc class MyApp(wx.App): def OnInit(self): self.frame = wx.Frame(None, -1, "test") sizer = wx.BoxSizer( wx.VERTICAL ) self.main_wn…

RGB->L*a*b*変換

とりあえずメモ RGB2XYZ_D65 = ( 0.412453, 0.357580, 0.180423, 0.212671, 0.715160, 0.072169, 0.019334, 0.119193, 0.950227 ) D65 = ( 0.950456, 1., 1.088754 ); _coff = ( RGB2XYZ_D65[0]*(1.0/D65[0]),RGB2XYZ_D65[1]*(1.0/D65[0]),RGB2XYZ_D65[2]*(1…

Windowsを再起動/終了/スリープ/休止状態にする

再起動/終了 import os #Windowsの再起動 os.system('shutdown -r -f') #Windowsの終了 os.system('shutdown -s -f') スリープ/休止状態 import ctypes #Windowsのスリープ ctypes.windll.PowrProf.SetSuspendState(0, 1, 0) #Windowsの休止 ctypes.windll.P…

文字列のcsvを解析する方法

csvモジュールはcsvファイルしか解析できないと思われがちだが、メモリ上のcsvを解析する事も可能。 一番簡単な方法は、以下の通り。 import csv for row in csv.reader(['one,two,three']): print row # ['one', 'two', 'three'] 複数行の文字列も解析可能…

SCons入門(3)

SCons入門(1) - Pashango’s Blog SCons入門(2) - Pashango’s Blog ファイル/ディレクトリ操作「Copy,Move,Delete,Touch,Mkdir,Chmod」 SConsではファイル/ディレクトリ操作用に以下の関数が用意されている。 Copy(dst, src) ファイル/ディレクトリのコピー M…

SCons入門(2)

SCons入門(1) - Pashango’s Blog ファイル更新チェックの方法を変更する「Decider」 SConsでは、ファイルの更新チェックに標準でMD5を使用する。 そのため、タイムスタンプが異なっていても、ファイル内容が同じであれば不要なビルドを避けてくれる。 MD5で…

SCons入門(1)

SConsとは? Python製のMake代替ツール。 中でPythonコードを書けるので、複雑なMake処理を簡単に書ける。 C言語の依存関係などを自動に調べる機能などがあるらしいが、使った事はないので詳しい事はわからない。 自分の場合はプログラムのビルドではなく、…

スキルはあるが飯は食えないかもしれない

仕事が一段落したので、久しぶりの更新です。あなたのスキルで飯は食えるか? 史上最大のコーディングスキル判定 面白そうなのでPythonで解いてみました、実装時間は1時間くらいです。 Pythonすごいなー、C++やJavaでやれって言われたら3時間では終わらんわ…

RE:自分ならこう書く - pythonでA*

自分ならこう書く - pythonでA* - ラシウラ おぉぉぉ、コードが添削されとる! しかし、ソート付きキューのheapqは知らなかったです、勉強になります。 それにしても、C言語のベタ移植だったとはいえ、Pythonに直すと短くなるもんだなぁ!! ・・・でも、短…

よく使うファイル操作早引き

Pythonでよく使う便利なファイル操作のまとめ。 こういう便利な機能を使っちゃうと、C言語でツールを作るのがバカらしくなりますね。 テンポラリファイル(一時ファイル) tempfileモジュールを使います、テンポラリファイルを作成する方法はいくつかあって…

今更ながらjsonを使いました

Python2.6になって、jsonが標準モジュールになりましたね。 JavaScriptとの連携をするつもりはないんですが、可読性のあるpickleとして使えるかなと思いました。 import json a = { "name":"Tim", "age":19, "email":"tim@timcity.com", "visible":True } js…

クロージャの正しい使い方

先日、私が「クロージャの使い所が、イマイチわからないっす」とつぶやいてたら、知人から以下のページを教えてもらった。 クロージャの正しい使い方 orz .... 誰かクロージャの正しい使い方を教えてください。 (いや、確かに使ったら便利な場面もあるけど…

すごい乱数生成アルゴリズム「xorshift」

みなさん、こんにちは、今回は乱数の話です。 特に複数機種でのコンシューマ機でゲームを開発をしていると、機種間で乱数値を統一するために乱数生成アルゴリズムを自作しますよね。 そこでよく使われるアルゴリズムが「線形合同法」です、内容は至って簡単…

numpyで2次元ベクトルの外積

一般的には2次元の外積の存在は賛否が分かれる所ですが、numpyでは2次元ベクトルの外積が用意されています。 import numpy numpy.cross([0,1],[ 1,0]) #-1 numpy.cross([0,1],[-1,0]) # 1 numpy.cross([1,0],[ 0,1]) # 0 どうやら内積の90度回転版みたいです…

RSA暗号で「ふっかつのじゅもん」を作る(2) -RSA暗号鍵の生成

Pythonを使って高速素数判定をしてみる - Pashango’s Blog RSA暗号で「ふっかつのじゅもん」を作る(1) - Pashango’s Blog さて前回からの続きです、RSA暗号で「ふっかつのじゅもん」を作ってみましょう。 RSA暗号では、暗号化するデータのビット数よりも、1…

RSA暗号で「ふっかつのじゅもん」を作る(1)

オッス、オラ、トンヌラ! 前回は、高速素数判定を作りましたが、今回はRSA暗号を使って、昔懐かしの「ふっかつのじゅもん」を作ってみましょう。 Pythonを使って高速素数判定をしてみる - Pashango’s Blog あ、「今さらRSAかよ」と思いました? 自分でRSAを…

"sep".join()は気持ち悪くないよ!

"sep".join(list) が気持ち悪い理由 そんなに Array.join がいいのか Pythonの','.join()がキモいと思ってた時代が僕にもありました Pythonの文字列連結(join)にまつわる議論 まとめと考察(2) "".join()が色んなところで話し合われているんですね。 眺めて…

小数点の切り上げ/四捨五入/階乗計算

時々使うんだけど、調べると検索になかなかヒットしなくてイラッとするものたち。 小数点の切り上げ import math math.ceil(0.1) #=>1.0 四捨五入 round(0.4) #=>0.0 round(0.5) #=>1.0 round(0.15,1) #=>約0.2 round(124,-1) #=>120 階乗計算 階乗はVersion…

Inkscapeのプラグインでも作るか

そろそろ作っておくべきか・・・ でも、Inkscapeプラグインの日本語資料はほぼ壊滅。 あっても古いしな・・・とりえあず、inkex.pyあたりを読むしかないか・・・

主成分分析を使ってバウンティボックスを作る

以前にnumpyを使った主成分分析を公開しましたが、今回はそれを使ってバウンティボックスを作ってみます。 ある頂点集合に対して、適切なバウンティボックスを求めたいとしましょう。簡単に思いつく方法としては、基底軸X,Yごとに最大値&最小値を求め、それ…

なぜPythonには"標準"で定数を定義できないのか?

結論から言うと、Pythonになぜ"標準"で定数がないのかは「わかりません」。 答えを求めていた人には申し訳ない。 Pythonには知っての通り、定数を定義できません。 (独自でconstクラスを実装すれば定数らしき事はできます) 定数の実装が難しいとは考えにく…

pyevolveによる遺伝的アルゴリズム(3)

pyevolveによる遺伝的アルゴリズム(1) pyevolveによる遺伝的アルゴリズム(2) 今回はGAで「巡回セールスマン問題」を解いてみます。 「matplotlib」のインタラクティブモードを使い、巡回経路がリアルタイムで変化するようにしました、経路がウネウネと最適化…

pythonグラフライブラリ「matplotlib」覚書

http://matplotlib.sourceforge.net/よく使う機能のみピックアップ。 グラフ(plot) from pylab import * x = arange(-10, 10, 0.1) y = sin(x) plot(x,y, '--') show() 棒グラフ(bar) from pylab import * datas = {"Tim":7, "Jack":10, "Matthew":4} width …