查找数组中的特殊元素



我有这样一个数组:

x = np.array([[1,2], [3,4], [5,6]]) 

我想找到大于3的元素。我正在尝试:

ppoc = np.zeros((3,3))
ixu = np.argwhere(x > 2)
ppoc = ppoc[0, ixu]

但问题是ppoc是一个2*2数组,但我需要返回一个与x大小相同的数组,其中其余元素为零

ppoc必须看起来像:

ppoc = [[0,0], [3,4], [5,6]]

有人知道怎么做吗?

您可以根据t < 3t发送到0t的计算向量化,然后将此向量化函数应用于x:

np.vectorize(lambda t: 0 if t < 3 else t)(x)

this计算结果为:

array([[0, 0],
[3, 4],
[5, 6]])

如果我理解正确的话,您希望将数组中的每个元素替换为0,如果它小于3。下面是答案:

x = np.array([[1,2], [3,4], [5,6]])
ppoc = x * (x > 2)
Output :
array([[0, 0],
[3, 4],
[5, 6]])

这是你想要的吗?

最新更新