len() of a numpy array in python [duplicate]

2020-07-05 07:21发布

If I use len(np.array([[2,3,1,0], [2,3,1,0], [3,2,1,1]])), I get back 3.

Why is there no argument for len() about which axis I want the length of in multidimensional arrays? This is alarming. Is there an alternative?

3条回答
趁早两清
2楼-- · 2020-07-05 07:39

Easy. Use .shape.

>>> nparray.shape
(5, 6) #Returns a tuple of array dimensions.
查看更多
三岁会撩人
3楼-- · 2020-07-05 07:47

What is the len of the equivalent nested list?

len([[2,3,1,0], [2,3,1,0], [3,2,1,1]])

With the more general concept of shape, numpy developers choose to implement __len__ as the first dimension. Python maps len(obj) onto obj.__len__.

X.shape returns a tuple, which does have a len - which is the number of dimensions, X.ndim. X.shape[i] selects the ith dimension (a straight forward application of tuple indexing).

查看更多
Lonely孤独者°
4楼-- · 2020-07-05 08:01

You can transpose the array if you want to get the length of the other dimension.

len(np.array([[2,3,1,0], [2,3,1,0], [3,2,1,1]]).T)
查看更多
登录 后发表回答