0

私は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
4

2 に答える 2

3

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])
于 2012-08-15T10:57:03.740 に答える
0

何があっても空の行が常にあることがわかっている場合、これを行うために NUMPY が必要な理由がわかりません...

Z = Z[:][1:]

それが最初の行だけの場合、これは実際には行列、そしてもちろん配列に対して機能します

Z = Z[1:]

マトリックス内のアイテムの配置を気にしない場合は@eumiroのソリューションが好きですが、それらのソリューションはすべてのゼロを削除し、要素をシフトすると思います。

于 2015-10-10T02:03:20.987 に答える