我有一个清单:
a = [[1, 0], 'apple', 5]
为什么size(a[0])
即使a
不是numpy array
也能正常工作?
我认为尺寸仅适用于阵列?
谢谢!
答案 0 :(得分:2)
size[a[0]]
不应该有效,但size(a[0])
应该有效。您只需查看np.size
的来源:
def size(a, axis=None):
[docstring removed]
if axis is None:
try:
return a.size
except AttributeError:
return asarray(a).size
else:
try:
return a.shape[axis]
except AttributeError:
return asarray(a).shape[axis]
当您传递列表时,axis
保持默认值None
,该函数会尝试获取a.size
。由于它不存在,它使用asarray(a)
将列表转换为数组,并以此方式获取大小。在您的情况下,它将生成dtype object
的1-D numpy数组。