python中numpy数组的len()

python中numpy数组的len(),python,numpy,multidimensional-array,variable-length,Python,Numpy,Multidimensional Array,Variable Length,如果我使用len(np.array([[2,3,1,0],[2,3,1,0],[3,2,1,1]]),我得到3 为什么在多维数组中,len()关于哪个轴的长度没有参数?这令人震惊。有其他选择吗?简单。使用.shape >>> nparray.shape (5, 6) #Returns a tuple of array dimensions. 如果要获得其他维度的长度,可以转置数组 len(np.array([[2,3,1,0], [2,3,1,0], [3,2,1,1]]).

如果我使用
len(np.array([[2,3,1,0],[2,3,1,0],[3,2,1,1]])
,我得到3


为什么在多维数组中,
len()
关于哪个轴的长度没有参数?这令人震惊。有其他选择吗?

简单。使用
.shape

>>> nparray.shape
(5, 6) #Returns a tuple of array dimensions.

如果要获得其他维度的长度,可以转置数组

len(np.array([[2,3,1,0], [2,3,1,0], [3,2,1,1]]).T)

等效嵌套列表的
len
是什么

len([[2,3,1,0], [2,3,1,0], [3,2,1,1]])
有了更一般的
shape
概念,
numpy
开发人员选择实现
\uuu_u_u
作为第一维度。Python将
len(obj)
映射到
obj上


X.shape
返回一个元组,该元组有一个
len
——即维度数,
X.ndim
X.shape[i]
选择
ith
维度(元组索引的直接应用)。

只需在每一行上应用
len
函数,并在
数组上运行
max
。shape[i]
,其中
i
指示相关轴,应该工作得很好。请注意,这与MATLAB的行为不同。在MATLAB中,多维数组的“长度”是沿最长维度的长度(在Python中可以通过
max(x.shape)
计算)。(见文件:)这之所以会得到反对票,是因为这是一种令人费解的看待事物的方式。当应用
len
时,您应该得到长度,并且不必怀疑数学恒等式来理解len(转置)代表什么。此外,这对len(arr.shape)>2不起作用