首先我们要方便一个数组或者矩阵的大小维度。在python的numpy包里面,都是用中括号[],来包含的。这些数据对于新手来说都有点混乱,有时候看到很多个括号就不知道这些维度是什么,还有一些numpy的函数操作,比如np.squeeze, np.expand_dims等。对这些数据操作之后,数组或者矩阵会变成什么样都不知道。下面来做一个阐述:
维度和括号之间的联系
对于一个数据,numpy里面的维度是
- 先数最里面的括号包含的个数,数的量作为维度最右边的值
- 然后再把最里面的括号当成一个整体,再来数数量,数的数量为上面维度左边的值。
- 一直持续这个2的操作,把维度一直按照从右到左数出来
- 直到剩下最后一个括号
这样讲太抽象,来看例子:
import numpy as np #导入numpy模块
a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([[[1, 2, 3], [4, 5, 6]]])
c = np.array([[[1, 2, 3]], [[4, 5, 6]]])
d = np.array([[[1], [2], [3]], [[4], [5], [6]]])
print(a.shape) # a.shape(2,3) ,从最里面数有3个数,最左边维度是3;然后三个数看作一个整体,2个这样的整体,那么下一个维度就是2。达到最后一个中括号。不用继续数
print(b.shape) # b.shape(1,2,3)
print(c.shape) # c.shape(2,1,3)
print(d.shape) # d.shape(2,3,1)