我正在尝试剪切数组中的值。我发现了函数np.clip()
它做了我需要的。但是,它修改数组列表中的数组值的方式使我感到困惑。这是代码:
import numpy as np
a = np.arange(5)
b = np.arange(5)
for x in [a,b]:
np.clip(x, 1, 3, out=x)
结果
>>> a
array([1, 1, 2, 3, 3])
>>> b
array([1, 1, 2, 3, 3])
a
和b
的值已被更改而未分配,而功能np.clip()
仅与x
一起使用。
有一些相关的问题,但是它们使用列表的索引,例如Modifying list elements in a for loop,Changing iteration variable inside for loop in Python。
有人可以为我解释np.clip()
函数如何直接修改列表值。
答案 0 :(得分:1)
不是因为np.clip
函数。这是因为您在可变列表上使用了循环,因此可以修改元素的值。您可以在Immutable vs Mutable types处了解更多信息。