提问者:小点点

大于x时替换数组中的值[重复]


我有一个简单的想法有点问题。我有一个数据数组,如果值大于X,我想替换每个值。

为了解决这个问题,我写了一个小脚本作为示例,给出了相同的想法:

import numpy as np

# Array creation

array = np.array([0.5, 0.6, 0.9825])

print array

# If value > 0.7 replace by 0.

new_array = array[array > 0.7] == 0

print new_array

我想获得:

>>> [0.5, 0.6, 0] # 0.9825 is replaced by 0 because > 0.7

如果你能帮我,谢谢你;)

编辑:

我没有发现这个主题对我有什么帮助:替换PythonNumPy数组中大于某个值的所有元素。


共2个答案

匿名用户

我想知道为什么这个解决方案没有在链接@DonkeyKong中提供:

np.where(arr>0.7, 0, arr)
#Out[282]: array([ 0.5,  0.6,  0. ])

匿名用户

怎么样

a = [0.5, 0.6, 0.9825]
b = [(lambda i: 0 if i > 0.7 else i)(i) for i in a]

?

这是列表推导式中的lambda表达式。检查链接