【问题标题】:Replace value in array when greater than x [duplicate]大于 x 时替换数组中的值 [重复]
【发布时间】: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 给出的答案在上一篇文章中没有注意到。

【问题讨论】:

    标签: python arrays numpy


    【解决方案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 expressionlist comprehensions 中。 检查链接

    【讨论】:

    • 虽然此代码可以回答问题,但提供有关它为什么和/或如何回答问题的额外上下文将显着提高其长期价值。请edit你的答案添加一些解释。
    猜你喜欢
    • 2017-01-12
    • 1970-01-01
    • 2020-11-19
    • 1970-01-01
    • 1970-01-01
    • 2018-09-09
    • 2022-12-17
    • 2020-11-13
    • 1970-01-01
    相关资源
    最近更新 更多