3
サイズが〜70k * 10kの2次元numpy配列を持っています。すべての値をすべての行の "N"個の要素よりも小さいゼロで置き換えたい。例えば:各行の "n"個の最大項目より小さいnumpy配列のすべての値を置換する
arr = np.array([[1, 0, 6, 5, 2, 5],
[7, 5, 2, 6, 7, 3],
[3, 5, 1, 5, 6, 4]])
がN = 3
ため結果は次のようになります。
result = np.array([[0, 0, 6, 5, 0, 5], # 3 largest in row: 6, 5, 5
[7, 0, 0, 6, 7, 0],
[0, 5, 0, 5, 6, 0]])
置換されていなかった、アレイの形状は同じままべき数字の位置。
あなたは何を自分でしようとしたのですか?誰かがそれをどうやってやるのかについてのアイデアは何ですか? –
https://stackoverflow.com/questions/30332908/n-largest-values-in-each-row-of-ndarrayのような同様の質問がありますが、np.partitionは配列の形を変えます。それは避けなければならないことです。 –
私が得た3番目のGoogleの結果は[this](https://stackoverflow.com/questions/19666626/replace-all-elements-of-python-numpy-array-that-are-greater-than-some-value)でした。 。それはあなたを始めさせるのに十分であるはずです。 –