Python 基于其他阵列的掩码阵列?
我有一个numpy数组Python 基于其他阵列的掩码阵列?,python,arrays,numpy,mask,Python,Arrays,Numpy,Mask,我有一个numpy数组arrayBig 10 5 27 30 34 2 34 23 2 3 2 3 43 12 23 2 24 34 2 34 我有一个numpy数组arraySmall 1 0 0 0 1 1 1 1 0 我想要的是一个numpy数组arrayNew 34 0 0 0 43 12 24 34 0 我知道我的arraySmall具有(3,3)的形状,并且位于arrayBig中的索引(11)。如何使用Numpy获取arrayNew。我不确定它是否比另一个
arrayBig
10 5 27 30 34
2 34 23 2 3
2 3 43 12 23
2 24 34 2 34
我有一个numpy数组arraySmall
1 0 0
0 1 1
1 1 0
我想要的是一个numpy数组arrayNew
34 0 0
0 43 12
24 34 0
我知道我的arraySmall
具有(3,3)
的形状,并且位于arrayBig
中的索引(11)
。如何使用Numpy获取arrayNew
。我不确定它是否比另一个答案更好,但您可以:
>>> import numpy as np
>>> arrayBig = np.array([
... [10, 5, 27, 30, 34],
... [2, 34, 23, 2, 3],
... [2, 3, 43, 12, 23],
... [2, 24, 34, 2, 34],
... ])
>>> arraySmall = np.array([
... [1, 0, 0],
... [0, 1, 1],
... [1, 1, 0],
... ])
>>> arrayBig[1:4, 1:4] * arraySmall
array([[34, 0, 0],
[ 0, 43, 12],
[24, 34, 0]])
>>> a = np.array([[1,2,3],[4,5,6]])
>>> b = np.array([[1,0],[0,1]])
>>> c = b == 0
>>> d = a[0:b.shape[0],0:b.shape[1]]
>>> d[c] = 0
>>> d
array([[1, 0],
[0, 5]])