PS:个人学习过程中的学习记录,不敢保证全对,请甄别看待,谢谢。

1.如何看数组维度

2.扒皮

一维数组。在Numpy中都表现为:(x,)。

a = np.array([1,2,3])
print(a,a.shape)

[1 2 3]
(3,)

a.shape = (3,),是一个一维数组,数组的长度为3.

--------------------------------------------------------------

二维数组(矩阵):

b = np.array([[1,2,3],[4,5,6]])
print(b, b.shape)

[[1 2 3]
 [4 5 6]]
(2, 3)

b.shape = (2, 3),是一个2*3的矩阵。:由两行,三列构成。

多维数组:

#举个3-D例子。
c= np.array([[[1,2],[3,4],[5,6]],[[1,2],[3,4],[5,6]]])
print(c, c.shape)

[[[1 2]
  [3 4]
  [5 6]]

 [[1 2]
  [3 4]
  [5 6]]]
(2, 3, 2)

怎么解读c.shape = (2, 3, 2)。本人习惯从后面数,先画一个3*2的矩阵,再用2个3*2包起来。

个人见解:这是3维的举例,c = np.aaray( )中的数组,最左边和最右边各有三个中括号[[[  ]]],这三个括号(最左边或者最右边)代表是三维的数组。然后扒掉最外面的一次皮(半个中括号,[   或  ],最左边和最右边还剩两个括号,两个括号找离自己最近的两个括号,可以看出在[5,6]后面要切一刀,就变成上图的样子。

ps:碰到中括号外的逗号就自动换行显示。

举个4-D的例子
d= np.array([[[[1,2],[3,4],[5,6]],[[1,2],[3,4],[5,6]]],
             [[[1,2],[3,4],[5,6]],[[1,2],[3,4],[5,6]]]])
print(d, d.shape)

[[[[1 2]
   [3 4]
   [5 6]]

  [[1 2]
   [3 4]
   [5 6]]]


 [[[1 2]
   [3 4]
   [5 6]]

  [[1 2]
   [3 4]
   [5 6]]]]
(2, 2, 3, 2)

那么4-D的(2, 2, 3, 2)就是把2个3-D的(2, 3, 2)包起来。

个人见解:这是4维的举例,c = np.aaray( )中的数组,最左边和最右边各有四个中括号[[[  ]]],这四个括号(最左边或者最右边)代表是四维的数组。然后扒掉最外面的一次皮(半个中括号,[   或  ],最左边和最右边还剩三个括号,三个括号找离自己最近的三个括号,可以看出在第二个[5,6]后面要切一刀。再扒一层皮(即去掉一个中括号),此时三个中括号变为两个了,两个括号找离自己最近的两个括号,可以看出在第一个[5,6]后面要切一刀,就变成上图的样子。

ps:碰到中括号外的逗号就自动换行显示。

Tips:1. 可以看中间的空格行行数区分大包小包。

2. 数一下括号里有多少个数字,就是几维。或者用.ndim查看。

print(d.ndim) #获得数组的维数,即秩的个数

4