繁体   English   中英

如何将数组中的所有负数替换为零[重复]

[英]How to replace all negative numbers in an array with zero [duplicate]

这个问题在这里已有答案:

如果我有一个NxN numpy数组并且如果有任何位置的负数,是否有一个简单而快速的方法我可以用0替换该数字? 就像是

for item in array:
    if item <= 0: 
        item = 0

你可以使用布尔掩码来掩盖整个数组,这比你现在的迭代效率要高得多:

In [41]:
array = np.random.randn(5,3)
array

Out[41]:
array([[-1.09127791,  0.51328095, -0.0300959 ],
       [ 0.62483282, -0.78287353,  1.43825556],
       [ 0.09558515, -1.96982215, -0.58196525],
       [-1.23462258,  0.95510649, -0.76008193],
       [ 0.22431534, -0.36874234, -1.46494516]])

In [42]:
array[array < 0] = 0
array

Out[42]:
array([[ 0.        ,  0.51328095,  0.        ],
       [ 0.62483282,  0.        ,  1.43825556],
       [ 0.09558515,  0.        ,  0.        ],
       [ 0.        ,  0.95510649,  0.        ],
       [ 0.22431534,  0.        ,  0.        ]])

根据这个SO答案 ,你可以使用numpy的内置索引。

arr[arr < 0] = 0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM