0
同じ長さの2つのnumpy
配列が与えられている場合、それらの両方から0の同じインデックス要素を削除する必要があります。例えば、私は2つの配列から同じインデックスを持つゼロ要素を削除する
a = [5 9 2 0 1 4 9 8 1]
b = [1 0 3 1 2 4 2 3 2]
すなわちを得ることが必要と思いアレイ
a = [5 9 2 0 1 4 9 0 8 1]
b = [1 0 3 1 2 4 2 0 3 2]
与えられ、両方の配列ゼロ値を有していた唯一の要素は、両方の配列からを除去しました。私は、このアプローチ
import numpy as np
a = np.random.randint(0, 10, 10)
b = np.random.randint(0, 10, 10)
a_z_idx = [a != 0]
b_z_idx = [b != 0]
ab_z_idx = a_z_idx and b_z_idx
a = a[ab_z_idx]
b = b[ab_z_idx]
を試してみたが、これはまただけでなく、それらの両方の中にゼロである要素を削除するの、いずれかの配列にゼロであるそれらの要素を削除します。
私の実際の配列は数百万の要素を持っていますので、私は可能な限り効率的な方法をとっています。
すばらしい答えDivakar!これらの方法のいずれかが他の方法より顕著に速いかどうか知っていますか? – Gabriel