大于 x 时替换数组中的值 [重复]
Posted
技术标签:
【中文标题】大于 x 时替换数组中的值 [重复]【英文标题】:Replace value in array when greater than x [duplicate] 【发布时间】:2016-08-18 22:55:54 【问题描述】:我对一个简单的想法有点问题。我有一个数据数组,如果值大于 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
如果你能帮上忙,谢谢;)
编辑:
我没有找到这个主题对我有什么帮助:Replace all elements of Python NumPy Array that are greater than some value @ColonelBeauvel 给出的答案在上一篇文章中没有注意到。
【问题讨论】:
【参考方案1】:我想知道为什么@DonkeyKong提供的链接中没有提供这个解决方案:
np.where(arr>0.7, 0, arr)
#Out[282]: array([ 0.5, 0.6, 0. ])
【讨论】:
非常感谢!它工作得很好!我也在看np.where
;)【参考方案2】:
怎么样
a = [0.5, 0.6, 0.9825]
b = [(lambda i: 0 if i > 0.7 else i)(i) for i in a]
?
这里是lambda expression 在list comprehensions 中。 检查链接
【讨论】:
虽然此代码可以回答问题,但提供有关它为什么和/或如何回答问题的额外上下文将显着提高其长期价值。请edit你的答案添加一些解释。以上是关于大于 x 时替换数组中的值 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
为数组中的变量分配新值的forEach循环不会替换变量的值[重复]