要素の量がまったく同じ2つの大きな配列があります。
Array1=[[1,2,3][1,1,2]]
Array2=[[0,2,0][3,1,3]]
Array1 の Element="1" の場合、"1" を Array2 と同じ場所にあるものに置き換えます
Output=[[0,2,3][3,1,2]]
簡単なはずですが、金曜日の深夜に頭が混乱しています。
import numpy as np
Array1 = np.array([[1,2,3], [1,1,2]])
Array2 = np.array([[0,2,0], [3,1,3]])
b = np.where(Array1 == 1)
Array1[b] = Array2[b]
結果:
>>> Array1
array([[0, 2, 3],
[3, 1, 2]])
jorgeca が指摘したように、上記のソリューションは次のように縮小できます。
b = Array1 == 1
Array1[b] = Array2[b]
これは Akaval のソリューションに基づいていますが、1 行です。のその他の機能を利用しますnp.where()
。
import numpy as np
Array1 = np.array([[1,2,3], [1,1,2]])
Array2 = np.array([[0,2,0], [3,1,3]])
Output = np.where(Array1 == 1, Array2, Array1)