我是一个天真的 numpy 用户,需要您帮助解决以下问题:我想用第三个数组替换小于第二个数组的多维数组的一些元素;例如:
x = np.arange(16).reshape((2, 8))
# x = np.array([[ 0, 1, 2, 3, 4, 5, 6, 7],
# [ 8, 9, 10, 11, 12, 13, 14, 15]])
和
y = np.array([[2], [13]])
# y = np.array([[ 2], [13]])
现在,找出x
大于 的位置y
,如果数组中至少有一个True
,x > y
计算这些实例,创建另一个数组 ( z
) 并将x
这些元素替换为z
:
x > y
# = [[False, False, False, True, True, True, True, True],
# [False, False, False, False, False, False, True, True]]
x
在这种情况下( )的 5 个元素x[:,3:]
应该被替换,所以我们创建一个(5, 2)
数组:
z = np.array([[20,21],[22,23],[24,25],[26,27],[28,29]])
我想要的结果是
x == np.array([[ 0, 1, 2, 20, 22, 24, 26, 28],
[ 8, 9, 10, 21, 23, 25, 27, 29]])