3

要素の量がまったく同じ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]]

簡単なはずですが、金曜日の深夜に頭が混乱しています。

4

2 に答える 2

3
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]
于 2013-07-27T00:38:19.477 に答える
2

これは 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)
于 2013-07-27T00:59:51.643 に答える