我想问一下如何更改整个 NumPy 数组中的值。
例如,我想更改每个< 1e-15
等于 的值1e-15
。
如果L
是一个列表:
L[:] = [max(x, 10e-15) for x in L]
假设您的意思是 lsit 而不是数组,我建议使用列表理解:
new_list = [max(x, 1e-15) for x in my_list]
(我也假设你的意思是1e-15 == 10. ** (-15)
而不是10e-15 == 1e-14
。)
Python 中也存在“数组”:array.array
标准库中的类和 NumPy 数组。
假设您的意思是一个 numpy 数组,并且它由一个变量指向a
:
np.fmax(a, 1e-15, a)
a
这会在每个元素的基础上找到作为前两个参数 (和)给出的两个值的最大值1e-15
,并将结果写回作为第三个参数给出的数组,a
。
我很难找到这个函数的官方文档,但我找到了这个。
我喜欢numpy.fmax
(这对我来说是新的),但对于一个可能更通用的情况,我经常使用:
a[a < 1e-15] = 1e-15
(在您可以改变条件或替换值不等于比较值的意义上更通用。)