“实际基数”仍然是
base
属性。如果你想跟着
基础
def recursive_base(arr):
while arr.base is not None:
arr = arr.base
return arr
如果你想知道为什么
rec['a'].base is not rec
,然后看看
recarray.__getitem__
:
def __getitem__(self, indx):
obj = super(recarray, self).__getitem__(indx)
if isinstance(obj, ndarray):
if obj.dtype.fields:
obj = obj.view(type(self))
if issubclass(obj.dtype.type, nt.void):
return obj.view(dtype=(self.dtype.type, obj.dtype))
return obj
else:
return obj.view(type=ndarray)
else:
return obj
在您的例子中,返回的对象是
ndarray.__getitem__
,和
基础
返回的对象是
ndarray.\u获取项目__
. 不过,一般来说,NumPy是否会压扁市场还不能保证
设置新数组的
.