numpy中的ndarray涉及到几个基本概念
shape 型,表示数组中每一维大小所组成的元组
ndim 维数,即len(shape)
请仔细观察以下示例
>>> import numpy as np
>>> a = np.array([1,2,3])
>>> a.shape
(3,)
>>> b = np.array([[1,2,3],[3,2,1]])
>>> b.shape
(2, 3)
>>>
我们推测shape是根据ndarray的中括号,从外向内计算其内有几个元素而依次计算得到的结果。
比如上面的a第一层中括号内有3个元素,因此shape[0] = 3,然后就没有中括号了,因此shape中只有一个有效数字,ndim=1
对于b最外层中括号内有2个元素,这两个元素是什么先不必关注因此a.shape[0] = 2;再看第2层中括号,拿第二层中括号的第1个元素来看他又是包含3个元素,因此shape[1] = 3;然后里面就再也没有中括号了,因此最终的shape是(2, 3)
再看一个例子,请自己分析
>>> c
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]]])
>>> c.shape
(3, 4, 2)
>>> c.ndim
3
>>>
请依次关注最外面的中括号
第1个中括号内有3个元素
第2个中括号内有4个元素
第3个中括号内有2个元素