强基初中数学&学Python——第232课 数字和数学第三方模块NumPy:菜鸟入门(8)


转换和重塑矩阵  本节介绍arr.reshape()、arr.transpose()和arr.T。  通常需要调换矩阵。NumPy数组具有属性T,用于转置矩阵。  有时可能还需要转换矩阵的维度,例如,当需要输入确定形状的数组,但已有的数据并非如此。这就是重塑方法应用的情景。只需输入新矩阵所需的新维度即可。  还可以根据指定的值使用 .transpose()反转或更改数组的轴。  例如数组:  可以通过arr.transpose()把它转置:  也可以使用arr.T属性:  两种方法都是浅拷贝,就返回的是view,修改返回值会改变原数据:
  要了解有关转置和重塑矩阵的更多信息,请参阅转置(https://numpy.org/doc/stable/reference/generated/numpy.transpose.html#numpy.transpose)和重构(https://numpy.org/doc/stable/reference/generated/numpy.reshape.html#numpy.reshape)。
如何反转矩阵  本节介绍np.flip()。  NumPy的np.flip()函数沿轴翻转或反转数组的内容。除了输入数组参数外,如果指定要反转的轴,则只反转该轴的数据;否则,反转所有数据。  反转1D数组  1D数组:  可以这样反转与打印:  反转2D数组  用法与1D数组一样。
  例如数组:  可以用下面的方法反转所有的行和列:  只反转行也很容易:  或者只反转列:  还可只反转某行或列。例如只反转第二行:  或者只反转第二列:  要阅读更多关于反转数组的内容,请打开flip:https://numpy.org/doc/stable/reference/generated/numpy.flip.html#numpy.flip。
展平多维数组  本节介绍.flatten()、ravel()。
  有两种常用的方法可以展平数组:.flatten()和ravel()。两者之间的主要区别在于:使用ravel()创建的新数组实际上是原数组的引用(即“视图”),因此新数组的任何更改都会影响原数组。因为ravel()不会创建副本(浅拷贝),所以它的内存效率很高。
  例如数组:
  可以用flatten()方法展平成一维数组,改变新数组的值,原数组不变:  但是,如果用ravel,新数组的改变会影响原数组:
  阅读更多关于flatten的信息,打开https://numpy.org/doc/stable/reference/generated/numpy.ndarray.flatten.html#numpy.ndarray.flatten,有关ravel的打开https://numpy.org/doc/stable/reference/generated/numpy.ravel.html#numpy.ravel。