numpy.shape(a)与a.shape获取数组形状:哪种方法更优?
numpy.shape(a) 和 a.shape 哪种更优?
性能优先选
a.shapea.shape是ndarray对象的原生属性,直接访问内存中存储的形状信息,没有函数调用的额外开销,速度比调用numpy.shape(a)更快。按使用场景选对应方式
- 如果确定变量
a是numpy数组,直接用a.shape就行,代码更简洁直观。 - 如果
a可能是嵌套列表这类非ndarray的可迭代对象,numpy.shape(a)更实用——它会自动把输入转换成数组后返回形状,不用手动先转np.array(a)。
- 如果确定变量
注意报错差异
要是a不是ndarray也不是能被numpy识别的结构化序列,a.shape会直接报错;而numpy.shape(a)在输入嵌套结构不规则时,也会抛出 ValueError。
内容的提问来源于stack exchange,提问作者learning_new
相关产品推荐
相关产品推荐

