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