大于 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 时替换数组中的值 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

替换 2D numpy 数组中的连续重复项

如何用相同的值替换双精度数组中的所有项目[重复]

为数组中的变量分配新值的forEach循环不会替换变量的值[重复]

LABVIEW如何实现数组多次条件判断,并且替换数组中的值

当步长大于1时,通过数组切片和numpy.diff替换python中的for循环

使用熊猫替换列中的值时出错[重复]