基础知识
NumPy中的ndarray对象是多维度的同数据类型的数组。
- 秩(rank)(ndarray.ndim)
轴的数量,或者维度的数量,是一个标量。 - 数组维度(ndarray.shape)
是一个元组,描述了每个维度中数组的大小。相对于一个矩阵来说,shape表示的就是n行m列。元组的长度,等价于轴/维度的个数,即秩的值。
设置axis时的计算原理
-
创建数组
-
输出的结果为3通道,4行,2列
-
对应关系
numpy创建数组时,每增加一个[]表示增加一个维度,一个[]可以看成一个完整的块,每层[]下有几个块,shape对应的值就是几。
-
axis=0时的计算原理
-
axis=1时的计算原理
-
axis=2时的计算原理
高维transpose()可视化
- 一维数组的转置仍是自己,不区分行向量与列向量:numpy.T。
- 二维数组的转置与线性代数的矩阵转置理解方法相同:numpy.T。
- 高维数组的转置,需要用到numpy的方法:transpose()。高维数组的转置较难理解,不能拿线性代数的转置来想象,这里的转置就是底层数字位置的变化,变换的规则遵循transpose()方法的规则。
索引转换角度理解
坐标轴变化角度理解
-
创建多维数组
-
高位矩阵在NumPy中的表达
3为数组b的shape为(2,2,4),表示有2个2x4的矩阵:
-
高维坐标系下的位置
-
坐标轴变换后的位置
-
坐标轴改变前后的视觉变化
-
将变换后的位置摆放原封不动的挪到原坐标习下,即得到坐标轴变换厚的新数组。
-
在原坐标系下,新摆放的数组shape仍为(2,2,4),即包含2个2x4的矩阵。这两个矩阵在0轴上依次排序,分别为图中的绿色cube和蓝色cube。
-
3个轴都发生变化的情况
一维/二维数据处理的可视化
-
创建数组
-
数组算术
-
索引
-
聚合
-
创建矩阵
-
矩阵算术
-
点积
-
矩阵索引
-
矩阵聚合
-
转置和重塑
-
更多维度
【参考资料】
NumPy中的维度(dimension)、轴(axis)、秩(rank)的含义
NumPy数据处理的可视化
Numpy中transpose()函数的可视化理解
Python中Numpy.transpose()
python之numpy矩阵维度axis参数理解