a = array([1,2,3,0,4,5,0])
とb = array([1,2,3,4,0,5,6])
の2つの配列があります。私はa
とb
が0
であるインスタンスを削除することに興味があります。しかし、私は両方のリストから対応するインスタンスを削除したい。したがって私が最後にしたいのはa = array([1,2,3,5])
とb = array([1,2,3,5])
です。これは、a[3] == 0
とa[6] == 0
なので、b[3]
とb[6]
の両方も削除されているためです。私は(私は)多くの多くの配列を持っている場合は、このソリューションはスケールアップdoesntの特定の値を持つ複数の配列から値を削除する
import numpy as np
a = np.array([1,2,3,0,4,5,0])
b = np.array([1,2,3,4,0,5,6])
ix = np.where(b == 0)
b = np.delete(b, ix)
a = np.delete(a, ix)
ix = np.where(a == 0)
b = np.delete(b, ix)
a = np.delete(a, ix)
:同様に、a[4]
、b[4] == 0
以降は、2つのアレイと言うためにこれを行うには、単純なdeleted.Itsされます。これを行うもっとエレガントな方法は何でしょうか?
私は次のことをしようとした場合:
import numpy as np
a = np.array([1,2,3,0,4,5,0])
b = np.array([1,2,3,4,0,5,6])
arrays = [a,b]
for array in arrays:
ix = np.where(array == 0)
b = np.delete(b, ix)
a = np.delete(a, ix)
私は私が必要な答え、a = array([1, 2, 3, 4])
とb = array([1, 2, 3, 0])
がない得ます。これが間違っているのはどうですか?
をすべての配列は同じ長さを持っているのですか? – dnalow
@dnalowはい、同じ長さです。 – deserthiker