我有两个输入数组a1a2

import numpy as np
a1 = np.array([1,2,3])
a2 = np.array([4,5,6])


我试图屏蔽a1并基于a2中的值获取此输出数组;即(不等于)5:

array([999999, 2, 999999])


为什么这种方法不正确?

np.ma.array(a1, mask=np.ma.masked_equal(a2, 5)).filled()


它正确返回:

array([999999, 999999, 999999])

最佳答案

一种替代方法是使用np.where

np.where(a2==5,a1,999999)
array([999999,      2, 999999])

08-25 01:24