len和size的区别

新手上路,请多包涵

我找到了两种方法来确定变量中有多少个元素……我总是得到相同的值 len ()size () 。有区别吗?可以 numpy pandas size () 已配备了导入的库(例如 math

 asdf = range (10)
print ( 'len:', len (asdf), 'versus size:', size (asdf) )

asdf = list (range (10))
print ( 'len:', len (asdf), 'versus size:', size (asdf) )

asdf = np.array (range (10))
print ( 'len:', len (asdf), 'versus size:', size (asdf) )

asdf = tuple (range (10))
print ( 'len:', len (asdf), 'versus size:', size (asdf) )

原文由 Nepumuk 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

size 来自 numpy (熊猫基于)。

它为您提供数组中元素的总数。但是,您也可以使用 np.size 查询特定轴的大小(见下文)。

相反, len 给出 第一 维的长度。

例如,让我们创建一个包含 36 个元素的数组,这些元素被塑造成三个维度。

 In [1]: import numpy as np

In [2]: a = np.arange(36).reshape(2, 3, -1)

In [3]: a
Out[3]:
array([[[ 0,  1,  2,  3,  4,  5],
        [ 6,  7,  8,  9, 10, 11],
        [12, 13, 14, 15, 16, 17]],

       [[18, 19, 20, 21, 22, 23],
        [24, 25, 26, 27, 28, 29],
        [30, 31, 32, 33, 34, 35]]])

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

size

size 会给你元素的 总数

 In [5]: a.size
Out[5]: 36

len

len 将为您提供 第一维 的“元素”数量。

 In [6]: len(a)
Out[6]: 2

这是因为,在这种情况下,每个“元素”代表一个二维数组。

 In [14]: a[0]
Out[14]:
array([[ 0,  1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10, 11],
       [12, 13, 14, 15, 16, 17]])

In [15]: a[1]
Out[15]:
array([[18, 19, 20, 21, 22, 23],
       [24, 25, 26, 27, 28, 29],
       [30, 31, 32, 33, 34, 35]])

这些数组又具有自己的形状和大小。

 In [16]: a[0].shape
Out[16]: (3, 6)

In [17]: len(a[0])
Out[17]: 3

np.size

您可以将 size 更具体地与 np.size 一起使用。

例如,您可以通过指定第一个(“0”)维度来重现 len

 In [11]: np.size(a, 0)
Out[11]: 2

您还可以查询其他维度的大小。

 In [10]: np.size(a, 1)
Out[10]: 3

In [12]: np.size(a, 2)
Out[12]: 6

基本上,您重现 shape 的值。

原文由 nocibambi 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进