返回的numpy数组总是生成一个视图吗?

时间:2016-06-30 17:28:00

标签: python arrays numpy

我注意到,比如说,这个函数,

def f(x):
    return(x)

总会返回numpy数组的视图。这一般是正确的吗?有什么奇怪的角落我需要考虑,或者我可以依赖这样一个事实:当一个数组是 return 语句的参数时,我总是得到视图吗?

1 个答案:

答案 0 :(得分:2)

不,你不会总是得到一个观点。实际上,使用您定义的函数(f),只有将视图传递给函数时才会获得视图。否则,你将得到原始数组(我想在很多方面行为就像一个视图)......

>>> def f(x):
...   return x
... 
>>> import numpy as np
>>> a = np.arange(10)
>>> b = f(a)
>>> b is a
True

由于ba是同一个数组,对b的更改也会反映在a中(反之亦然),但它不是一个视图,因为他们是同一个阵列。