私はnumpyを使用しています。
私は 1 つの arrayY
と 1 つの matrixを持っていX
ます。これは回帰用です。それらの配列にはラベルがあり0,1,2,3,4,5
ます。0
すべての行のラベルが削除され、対応する行も削除された新しい配列を作成する必要がありX
ます。これを行うための最も効率的な手段は何ですか?
例えば
for i in xrange(y.shape):
if y==0:
pop y pop X
Numpy 配列は、行の追加/削除が苦手です。削除する行がわかっている場合は、他の行 (必要な行) を抽出して、新しい配列を作成します。
あなたの質問がよくわからないので、間違っていたら訂正してください:
x = x[y != 0]
y = y[y != 0]
例:
import numpy as np
x = np.array([[11, 12, 13], [21, 22, 23], [31, 32, 33]])
y = np.array([1, 0, 3])
x = x[y != 0]
y = y[y != 0]
今:
x == array([[11, 12, 13],
[31, 32, 33]])
y == array([1, 3])
何があっても空の行が常にあることがわかっている場合、これを行うために NUMPY が必要な理由がわかりません...
Z = Z[:][1:]
それが最初の行だけの場合、これは実際には行列、そしてもちろん配列に対して機能します
Z = Z[1:]
マトリックス内のアイテムの配置を気にしない場合は@eumiroのソリューションが好きですが、それらのソリューションはすべてのゼロを削除し、要素をシフトすると思います。