numpy数组是否跟踪他们的“查看状态”?
import numpy
a = numpy.arange(100)
b = a[0:10]
b[0] = 100
print a[0]
# 100 comes out as it is a view
b is a[0:10]
# False (hmm how to ask?)
我要找的是numpy.isview()
或其他什么。
我希望这能用于代码分析,以确保我正确地做事并在我认为自己时获得意见。
答案 0 :(得分:5)
该数组还有一个基本属性:
a = np.arange(10)
print a.base
None
b = a[2:9]
print b.base is a
True
c = b[:2]
print c.base is b
True
print c.base is a
False
答案 1 :(得分:3)
ndarray.flags.owndata
告诉您阵列是否拥有其数据。在您的示例中:
In [18]: a.flags.owndata
Out[18]: True
In [19]: b.flags.owndata
Out[19]: False
它显然不如你所要求的那么精确,但它是我所知道的最好的。