にnumpyの行列をフィルタリング私はnumpyの行列を有する:私が欲しいもの次のようにカラム
data = np.matrix(
"5 3 1;"
"4 4 1;"
"6 4 1;"
"8 2 1;"
"3 5 1;"
"1 7 1;"
"5 4 1;"
"0 1 0;"
"2 0 0")
# Output:
matrix([[5, 3, 1],
[4, 4, 1],
[6, 4, 1],
[8, 2, 1],
[3, 5, 1],
[1, 7, 1],
[5, 4, 1],
[0, 1, 0],
[2, 0, 0]])
は、その値が1である3番目の列にマトリクスをフィルタリングすることです。それは私がその第三値要するに0です、私は以下の行列を抽出したい行を取得する必要はありません、次のとおりです。
matrix([[5, 3, 1],
[4, 4, 1],
[6, 4, 1],
[8, 2, 1],
[3, 5, 1],
[1, 7, 1],
[5, 4, 1]])
私はそれをフィルタリングするためのいくつかの組み合わせを試してみました。彼らのどれも私のために働いていませんでした。たとえば、次のコードでは行はゼロで除外されますが、最初の列のみが返されます。
data[data[:,2]>0]
#Output:
matrix([[5, 4, 6, 8, 3, 1, 5]])
ループステートメントを明示的に記述しなくてもこのマトリックスをフィルタリングする方法はありますか?
[ 'A = aA'](http://docs.scipy.org/doc/numpy/reference/generated/numpy.matrix.A.html#numpy.matrix.A):でHICH結果行列の 'a = np.asarray(a)'と等価です。 :) – MSeifert