比较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
那么,区别在哪里?哪个更符合Python风格呢?(我猜是使用shape
)。
a.shape[0] == len(a)
。 - Imanol Luengoa.size
也是一个选项。尽管个人更喜欢len(a)
,以防万一a
不是numpy数组,在你不小心的时候有时会发生这种情况。 - Mong H. Ng