every blog every motto: Whatever is worth doing is worth doing well.
前言
关于数组维度和矩阵形状的一点思考。
1. 代码案例
代码块1:
import numpy as np
a = np.array([1,2,3,3])
print('a的shape是:')
print(a.shape)
b = np.array([[1,1],[1,1],[1,1]])
print('b的shape是:')
print(b.shape)
输出为:
代码块2:
a的shape是:
(4,)
b的shape是:
(3, 2)
代码块3:
import numpy as np
a = np.array([1,2,3,3])
print('a的维度是:')
print(a.ndim)
b = np.array([[1,1],[1,1],[1,1]])
print('b的维度是:')
print(b.ndim)
代码块4:
a的维度是:
1
b的维度是:
2
2. 代码讲解
2.1. 维度判断方式:
- 根据shape中数字个数判断。如代码块1和2所示,a中的输出为(4,),有一个数字,那么a是一维;b中的输出为(3,2),有两个数字(分别为3和2),则b是二维。
- 根据ndim方法判断如代码块3和4所示。可以直接运用ndim进行维度的输出。
2.2 shape中数字的含义:
如代码块2
- a.shape 输出 (4,),其中只有一个数字4,表示一维;数字4表示含有4个数据。
- b.shape 输出 (3,2),其中含有两个数字(分别是3,2)表示二维数组。3,2的含义为:3表示其中含有3个一维数组,2表示一维数组中含有2个数组
3. 一点思考
- 对于一维数组可能有点难理解。如线性代数中 n = [1,2,2,4],它表示向量(1*4)而在数组中的表示为(4,)。需要注意的是,这里是向量(或者说矩阵,矩阵和数组的区别可参考文献[2])与我们所说的数组还是有不同的,注意不要混淆!
- 另,有关维度的详细讲解参考文献[1]
参考文献
[1] https://blog.csdn.net/Babyfatliang/article/details/87721282
[2] https://blog.csdn.net/wyl1813240346/article/details/79806207