我对Python和numpy都很陌生,无法在不手动迭代的情况下使其正常工作。
我有一个浮点值的n维数据数组和一个形状相同的布尔“掩码”数组。我需要从中获取一个与两个其他数组具有相同形状的新数组,其中所有来自数据数组的值都位于掩码数组在相同位置为True
的位置。其他所有值都应为0.
:
# given
data = np.array([[1., 2.], [3., 4.]])
mask = np.array([[True, False], [False, True]])
# target
[[1., 0.], [0., 4.]]
看起来像是numpy.where()
可以实现这个功能,但我无法让它正常工作。
赠品:不创建新的数组,而是在掩码为False
的位置替换数据值,以防止新的内存分配。
谢谢!