有人可以解释 Numpy 的设计决策,即保持数组的单个元素与 Python 标量不同吗?
下面的代码工作没有错误
import numpy as np
a = np.array([1, 2, 3])
b = a[0]
print(b.size)
Run Code Online (Sandbox Code Playgroud)
这说明这b不是一个简单的 Python 标量,实际上type(b)给出了numpy.int32而不是int.
当然,如果定义了b = 1,命令b.size会抛出错误,因为
AttributeError: 'int' 对象没有属性 'size'
我发现这种行为差异令人困惑,我想知道它的动机是什么。