私は現在、約350行と50列のcsvファイルを持っています。そのうちの4列にアクセスしたいと思っています。 genfromtxt
を使用して、私はこれを行うことができます。ただし、これらの列を取得した後は、既存の列(つまり、newcol=abs(col1-col2)
)に基づいて新しい列を追加したいと考えています。しかし、私がこれを行うと、エラー:too many indices for array
が出ます。ここでnumpyの配列を操作する
私のコードです:
上記の最後の2行に基づいてimport numpy as np
thedata = np.genfromtxt(
'match_roughgraphs.csv',
skip_header=0,
skip_footer=0,
delimiter=',',
usecols=(3,4,29,30),
names=['hubblera','hubbledec','sloanra','sloandec'])
for row in thedata:
print(row)
b=np.empty(350,1)
b=np.absolute(thedata[:,0]-thedata[:,1]) #returns too many indices error
print(thedata[0,0]) #also returns too many indices error
print(thedata[0]) #prints out first row
、私が試したテスト、私は分離、すべてのデータが1列に保存されるようにgenfromtxt()
は、csvファイルをロードしていると仮定していますデリミタカンマの代わりに文字列コンマで区切ります。どのようにこれを修正するための任意の提案?
をやってみないがあるので、これはエラーを返しますが、答えは問題がndarraysということだったということです2Dであるためには均質でなければならない。私のものはすでに同質である。すべてのデータポイントは '
name引数を使用すると、構造化されたndarrayが返され、names引数を取り除くと2d配列が返されます – Eular
右よ!ありがとうございます –