我有这样一个数组:
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 < 3
将t
发送到0
或t
的计算向量化,然后将此向量化函数应用于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]])
这是你想要的吗?