我注意到,比如说,这个函数,
def f(x):
return(x)
总会返回numpy数组的视图。这一般是正确的吗?有什么奇怪的角落我需要考虑,或者我可以依赖这样一个事实:当一个数组是 return 语句的参数时,我总是得到视图吗?
答案 0 :(得分:2)
不,你不会总是得到一个观点。实际上,使用您定义的函数(f
),只有将视图传递给函数时才会获得视图。否则,你将得到原始数组(我想在很多方面行为就像一个视图)......
>>> def f(x):
... return x
...
>>> import numpy as np
>>> a = np.arange(10)
>>> b = f(a)
>>> b is a
True
由于b
和a
是同一个数组,对b
的更改也会反映在a
中(反之亦然),但它不是一个视图,因为他们是同一个阵列。