例えば、私は、寸法X 3 3列に指定された要素がある場合、numpy配列から列を削除する方法はありますか? (パイソン)は、
[1 2 7
4 5 6
7 8 9]
た2Dアレイを有し、I 7を含むすべての列を削除する - 第1及び第の3×1の行列を出力します。
[2
5
8]
これをPythonでどうやってやりますか?私はそれをn x n次元の大きな行列に適用したいと考えています。
ありがとうございました!
例えば、私は、寸法X 3 3列に指定された要素がある場合、numpy配列から列を削除する方法はありますか? (パイソン)は、
[1 2 7
4 5 6
7 8 9]
た2Dアレイを有し、I 7を含むすべての列を削除する - 第1及び第の3×1の行列を出力します。
[2
5
8]
これをPythonでどうやってやりますか?私はそれをn x n次元の大きな行列に適用したいと考えています。
ありがとうございました!
numpy
これを行うのに役立ちます!
import numpy as np
a = np.array([1, 2, 7, 4, 5, 6, 7, 8, 9]).reshape((3, 3))
b = np.array([col for col in a.T if 7 not in col]).T
print(b)
#Creating array
x = np.array([[1, 2, 7],[4,5, 6],[7,8,9]])
x
Out[]:
array([[1, 2, 7],
[4, 5, 6],
[7, 8, 9]])
#Deletion
a = np.delete(x,np.where(x ==7),axis=1)
a
Out[]:
array([[2],
[5],
[8]])
あなたは列のインデックスのためのargwhere
を使用して、削除することができます。あなたが実際に元の行列の部分を削除したくない場合は
import numpy
a = numpy.array([[5, 2, 4],[1, 7, 3],[1, 2, 7]])
index = numpy.argwhere(a==7)
y = numpy.delete(a, index, axis=1)
print(y)
、あなただけのブール値のインデックスを使用することができます
a
Out[]:
array([[1, 2, 7],
[4, 5, 6],
[7, 8, 9]])
a[:, ~np.any(a == 7, axis = 1)]
Out[]:
array([[2],
[5],
[8]])
A = np.array([[1,2,7],[4,5,6],[7,8,9]])
for i in range(0,3):
... B=A[:,i]
... if(7 in B):
... A=np.delete(A,i,1)
ああ、 'WHERE'ととバージョンを探していました'軸' ...いいね! –