【发布时间】:2020-07-23 19:54:34
【问题描述】:
我对 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 的位置替换数据值以防止新的内存分配。
谢谢!
【问题讨论】: