加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 形状vs len为numpy数组

发布时间:2020-12-16 23:28:39 所属栏目:Python 来源:网络整理
导读:比较shape和len时是否存在差异(例如性能)?请考虑以下示例: In [1]: import numpy as npIn [2]: a = np.array([1,2,3,4])In [3]: a.shapeOut[3]: (4,)In [4]: len(a)Out[4]: 4 快速运行时比较表明没有区别: In [17]: a = np.random.randint(0,10000,size=1
比较shape和len时是否存在差异(例如性能)?请考虑以下示例:
In [1]: import numpy as np

In [2]: a = np.array([1,2,3,4])

In [3]: a.shape
Out[3]: (4,)

In [4]: len(a)
Out[4]: 4

快速运行时比较表明没有区别:

In [17]: a = np.random.randint(0,10000,size=1000000)

In [18]: %time a.shape
CPU times: user 6 μs,sys: 2 μs,total: 8 μs
Wall time: 13.1 μs
Out[18]: (1000000,)

In [19]: %time len(a)
CPU times: user 5 μs,sys: 1 μs,total: 6 μs
Wall time: 9.06 μs
Out[19]: 1000000

那么,有什么不同,哪一个更pythonic? (我想用形状).

解决方法

我不担心这里的表现 – 任何差异都应该是非常微小的.

我会说更多的pythonic替代品可能更符合您的需求:

a.shape可能包含比len(a)更多的信息,因为它包含所有轴的大小,而len只返回沿第一个轴的大小:

>>> a = np.array([[1,4],[1,4]])
>>> len(a)
2
>>> a.shape
(2L,4L)

如果你真的碰巧只使用一维数组,那么我个人赞成使用len(a),以防你明确需要数组的大小.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读