替换整个数组中的值

时间:2012-08-06 10:57:20

标签: python numpy

我想问一下如何更改整个NumPy数组中的值。

例如,我想将< 1e-15的每个值更改为等于1e-15

4 个答案:

答案 0 :(得分:3)

如果L是一个列表:

L[:] = [max(x, 10e-15) for x in L]

答案 1 :(得分:3)

假设你的意思是lsit而不是数组,我建议使用列表理解:

new_list = [max(x, 1e-15) for x in my_list]

(我还假设您的意思是1e-15 == 10. ** (-15)而不是10e-15 == 1e-14。)

Python中也存在“数组”:标准库中的类array.array和NumPy数组。

答案 2 :(得分:3)

假设你的意思是一个numpy数组,它由变量a指向:

np.fmax(a, 1e-15, a)

这将在每个元素的基础上找到作为前两个参数(a1e-15)给出的两个值的最大值,并将结果写回作为第三个参数给出的数组,a

我很难找到这个功能的官方文档,但我找到了this

答案 3 :(得分:2)

我喜欢numpy.fmax(这对我来说很新),但对于一个可能更通用的情况,我经常使用:

a[a < 1e-15] = 1e-15

(更通用的是你可以改变条件,或者替换值不等于比较值。)