csvから行列作成

Rだと、read.table関数で一発でデータをデータフレームに変更してくれる。
pythonで似たようなことができないかなーと思い書いてみた。

#! usr/bin/python
# -*- coding:utf-8 -*-
import numpy as np
import scipy as sp
import csv

filename = "./input/input.csv"

inputCSV = csv.reader(open(filename,"rb"))

a = sp.array([map(str,row) for row in inputCSV])[1:,1:]
A = np.mat([map(float,row) for row in a])
print A

インプットしたデータはこちら。

,x1,x2
d1,2,0
d2,0,1

行列Aの出力結果はこちら。

[[ 2.  0.]
 [ 0.  1.]]

ヘッダと行名が取れている。逆行列を計算してみたが計算できていた。