len和size的区别
Difference between len and size
我找到了两种方法来确定变量中有多少个元素……
len ()
和 size ()
我总是得到相同的值。有区别吗? size ()
是否带有导入的库(如 math
、numpy
、pandas
)?
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) )
Numpy nparray 有 Size
https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.size.html
而 len
来自 Python 本身
Size
来自 numpy ndarray.size
主要区别是nparray size只测量数组的大小,而python的Len一般可以用来获取对象的长度
考虑这个例子:
a = numpy.array([[1,2,3,4,5,6],[7,8,9,10,11,12]])
print(len(a))
#output is 2
print(numpy.size(a))
#output is 12
len()
是内置方法,用于计算可迭代 python 对象的长度,如 str
、list
、dict
等。len
returns 可迭代对象的长度,即元素个数。在上面的示例中,数组的实际长度为 2,因为它是一个嵌套列表,其中每个列表都被视为一个元素。
numpy.size()
returns 数组的大小,它等于 n_dim1 * n_dim2 * --- n_dimn
,即它是数组维度的乘积,例如,如果我们有一个数组维度 (5,5,2) 的大小为 50,因为它可以容纳 50 个元素。但是 len()
将 return 5,因为高阶列表(或第一维)中的元素数为 5。
根据您的问题,len()
和 numpy.size()
return 一维数组的输出相同(与列表相同),但采用矢量形式。但是,对于 2-D + 数组,结果是不同的。因此,要获得正确答案,请使用 numpy.size(),因为它 return 是实际大小。
当您在任何可迭代对象上调用numpy.size()
时,如您的示例所示,它首先被转换为一个 numpy 数组对象,然后调用 size()。
感谢 A2A
size
来自 numpy
(pandas 的基础)。
它给出了数组中元素的总数。但是,您也可以使用 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
会给你第一个维度的'elements'个数。
In [6]: len(a)
Out[6]: 2
这是因为,在这种情况下,每个'element'代表一个二维数组。
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
的值。
我找到了两种方法来确定变量中有多少个元素……
len ()
和 size ()
我总是得到相同的值。有区别吗? size ()
是否带有导入的库(如 math
、numpy
、pandas
)?
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) )
Numpy nparray 有 Size
https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.size.html
而 len
来自 Python 本身
Size
来自 numpy ndarray.size
主要区别是nparray size只测量数组的大小,而python的Len一般可以用来获取对象的长度
考虑这个例子:
a = numpy.array([[1,2,3,4,5,6],[7,8,9,10,11,12]])
print(len(a))
#output is 2
print(numpy.size(a))
#output is 12
len()
是内置方法,用于计算可迭代 python 对象的长度,如 str
、list
、dict
等。len
returns 可迭代对象的长度,即元素个数。在上面的示例中,数组的实际长度为 2,因为它是一个嵌套列表,其中每个列表都被视为一个元素。
numpy.size()
returns 数组的大小,它等于 n_dim1 * n_dim2 * --- n_dimn
,即它是数组维度的乘积,例如,如果我们有一个数组维度 (5,5,2) 的大小为 50,因为它可以容纳 50 个元素。但是 len()
将 return 5,因为高阶列表(或第一维)中的元素数为 5。
根据您的问题,len()
和 numpy.size()
return 一维数组的输出相同(与列表相同),但采用矢量形式。但是,对于 2-D + 数组,结果是不同的。因此,要获得正确答案,请使用 numpy.size(),因为它 return 是实际大小。
当您在任何可迭代对象上调用numpy.size()
时,如您的示例所示,它首先被转换为一个 numpy 数组对象,然后调用 size()。
感谢 A2A
size
来自 numpy
(pandas 的基础)。
它给出了数组中元素的总数。但是,您也可以使用 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
会给你第一个维度的'elements'个数。
In [6]: len(a)
Out[6]: 2
这是因为,在这种情况下,每个'element'代表一个二维数组。
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
的值。