回答:
私はあなたが列を望んでいたと仮定1
して9
?それは
data[:, [1, 9]]
または名前付き:
data[:, ['Column Name1','Column Name2']]
名前はdata.dtype.names
… から取得できます。
そのコードスニペットで列1と9を取得する場合、次のようになります。
extractedData = data[:,[1,9]]
指摘したいことの1つは、抽出する列の数が1の場合、結果の行列は期待どおりのMx1行列ではなく、抽出した列の要素を含む配列です。
これをMatrixに変換するには、結果の配列でreshape(M、1)メソッドを使用する必要があります。
data[:, 8:9]
。これは8列を使用しますが、余分な次元は削除しません。
ただ:
>>> m = np.matrix(np.random.random((5, 5)))
>>> m
matrix([[0.91074101, 0.65999332, 0.69774588, 0.007355 , 0.33025395],
[0.11078742, 0.67463754, 0.43158254, 0.95367876, 0.85926405],
[0.98665185, 0.86431513, 0.12153138, 0.73006437, 0.13404811],
[0.24602225, 0.66139215, 0.08400288, 0.56769924, 0.47974697],
[0.25345299, 0.76385882, 0.11002419, 0.2509888 , 0.06312359]])
>>> m[:,[1, 2]]
matrix([[0.65999332, 0.69774588],
[0.67463754, 0.43158254],
[0.86431513, 0.12153138],
[0.66139215, 0.08400288],
[0.76385882, 0.11002419]])
列は順番に並んでいる必要はありません。
>>> m[:,[2, 1, 3]]
matrix([[0.69774588, 0.65999332, 0.007355 ],
[0.43158254, 0.67463754, 0.95367876],
[0.12153138, 0.86431513, 0.73006437],
[0.08400288, 0.66139215, 0.56769924],
[0.11002419, 0.76385882, 0.2509888 ]])
使用できます:
extracted_data = data.ix[:,['Column1','Column2']]
私はここでの解決策がもはやpythonバージョンの更新で機能していないと思います、それのための新しいpython関数でそれを行う1つの方法は次のとおりです:
extracted_data = data[['Column Name1','Column Name2']].to_numpy()
これにより、望ましい結果が得られます。
ここにあるドキュメント:https : //pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_numpy.html#pandas.DataFrame.to_numpy
また、extractedData = data([:、1]、[:, 9])を使用することもできます