ラベル python の投稿を表示しています。 すべての投稿を表示
ラベル python の投稿を表示しています。 すべての投稿を表示

2012年1月17日火曜日

SnowLeopardにScipyをインストール

SnowLeopardにScipyをインストールしました。

で、できました。

ScipySuperPackというnumpy, scipy, matplotlibなどを一発インストールしてくれる便利スクリプトがあるのですが、Lion用のものしかありません。

デフォルトの状態のSnowLeopardにはインストールできなかったので、Pythonを2.7にあげてみたところ、うまくいきました。

Mac環境にScipyをインストールするのは昔から難しいらしく、ソースからインストール、Macportsでインストールなどやってみましたがうまく行きませんでした。調べてみたところみなさん苦労している様子です。

2011年8月22日月曜日

pythonで辞書のサブセットをcsvに変換

辞書のキーのうち必要なものだけをcsvで書き出します。
id, height, width, weightの辞書リストから、id, height, widthだけのcsvをつくっています。

import csv
outpath = '/path/to/csv'

paramnames = ['id','height','width']
rows = [{'id':0,'height':10,'width':5,'weight':3},{'id':1,'height':3,'width':7,'weight':9}]
header = dict([(val,val)for val in paramnames])

with open(outpath, mode='w') as f:
    rows.insert(0,header)
    writer = csv.DictWriter(f, paramnames, extrasaction='ignore')
    writer.writerows(rows)


paramnamesにid, height, widthを指定しているので、
id height width
0 10 5
1 3 7
というcsvができます。weightは指定していないので書き出されません。

辞書のサブセットをcsv化する方法は、
csv.DictWriterでextrasaction='ignore'にすると全パラメータを使わなくてもエラーをはきません。(ignoreしてますからね・・・)


DictWriterでヘッダを追加する方法はこちらを参考にしました。