【发布时间】:2017-04-22 13:38:40
【问题描述】:
如果我有一个 NxN numpy 数组,并且任何位置都有一个负数,有没有一种简单快捷的方法可以用 0 替换该数字? 像
for item in array:
if item <= 0:
item = 0
【问题讨论】:
-
array[array <= 0 ] = 0应该也有效,你说是否定的,不应该是array[array < 0] = 0而不是<=0? -
@EdChum ...这没什么区别,因为您最终将
0替换为0。唯一的区别可能是如果数组有floats 和一些0有“负号”而其他有正号,通过分配0你将它们全部设置为“正号”,但我相信所有的操作都应该是一样的。 -
@Bakuriu 是的,但
<0和<=0之间存在语义差异,无论最终结果如何,都带有否定语句,很明显<0表示否定,而<=0没有 -
提供的代码有什么问题? (从未使用过 numpy,所以我可能会问一个愚蠢的问题)
-
@WhatsThePoint 它不是矢量化的,是将元素设置为 0 的最有效方法,如果你有一个大数组,那么在这种情况下你最终会遍历每一行,而使用掩码将设置整个向量化的数组