Numpy: operación de volteo de la operación de matriz (Ndarray)


voltear matriz

La inversión de la matriz es también una de las operaciones más importantes de la matriz, que pertenece a la operación de cambio de forma o dimensión. Se puede lograr mediante los siguientes métodos, que tienen métodos que pertenecen a ndarray y métodos que pertenecen a numpy. Además, se transpone la propiedad de la matriz (ndarray.T), que también puede realizar la función de invertir las filas y columnas de la matriz.

método ilustrar
ndarray.transponer () Devuelve una vista de matriz de los ejes transpuestos.
ndarray.T transposición de matriz
numpy.swapaxes() Devuelve una vista de matriz con axis1 y axis2 intercambiados.
numpy.moveaxis() Mueva el eje de la matriz a una nueva posición.
numpy.rollaxis() Desplaza el eje especificado hacia atrás hasta que se encuentra en la posición dada.

método de matriz

ndarray.transponer ()

Devuelve una vista de matriz de los ejes transpuestos.

ndarray.transpose(*axes)

Descripción de parámetros:

  • ejes: opcional Ninguno, una tupla de enteros o n enteros.
    • Ninguno o ningún argumento: invierta el orden de los ejes.
    • Matriz de enteros: i en la posición j-ésima en la tupla significa que el eje i-ésimo de a se convierte en el eje j-ésimo de a.transpose().
    • n enteros: esta forma es funcionalmente idéntica a la forma de tupla.

valor de retorno:

  • vista de la matriz.

Si no comprende los parámetros, consulte el ejemplo:

>>> a = np.array([[1, 2], [3, 4]])
>>> a
array([[1, 2],
       [3, 4]])
>>> a.transpose() # 无参数
array([[1, 3],
       [2, 4]])
>>> a.transpose((1, 0)) # 二维数组只有两个轴,0表示原数组的行,1表示原数组的列,将原来的列放在元组索引为0的位置变成行,将原来的行放在元组索引为1的位置变为列。
array([[1, 3],
       [2, 4]])
>>> a.transpose(1, 0) # 与元组功能相同,比较方便的一种写法。
array([[1, 3],
       [2, 4]])

Al mismo tiempo, también puede consultar numpy.transpose(), la función es la misma que esta función, pero los parámetros son ligeramente diferentes.

propiedad de matriz

Hay un atributo (ndarray.T) en la matriz, que significa transposición, que intercambia las filas y columnas de la matriz, el ejemplo es el siguiente:

>>> a = np.array([[1, 2], [3, 4]])
>>> a
array([[1, 2],
       [3, 4]])
>>> a.T
array([[1, 3],
       [2, 4]])

método numpy

numpy.transponer()

numpy.transpose(a, axes=None)

Descripción de parámetros:

  • a: array_like, matriz de entrada
  • ejes: tupla de enteros o lista de enteros

valor de retorno:

  • ndarray, ver

Ejemplo:

>>> x = np.arange(4).reshape((2,2))
>>> x
array([[0, 1],
       [2, 3]])
>>> np.transpose(x)
array([[0, 2],
       [1, 3]])

numpy.swapaxes()

numpy.swapaxes(a, axis1, axis2)

Intercambie los dos ejes de la matriz.

Descripción de parámetros:

  • a: Recibir array_like, matriz de entrada.
  • axis1: recibe un entero, el primer eje.
  • axis2: recibe un entero, el segundo eje.

valor de retorno:

  • ndarray después de intercambiar ejes

Ejemplo:

>>> x = np.array([[1,2,3]])
>>> x
array([[1, 2, 3]])
>>> np.swapaxes(x,0,1)
array([[1],
       [2],
       [3]])

ndarray.moveaxis ()

Mueva el eje de la matriz a una nueva posición.

numpy.moveaxis(a, source, destination)

Descripción de parámetros:

  • a: recibe ndarray, la matriz que necesita rotar el eje.
  • fuente: recibe un número entero o una secuencia de números enteros. La posición original del eje a mover, debe ser única.
  • destino: Recibe un número entero o una secuencia de números enteros. La posición de destino para cada eje original también debe ser única.

valor de retorno:

  • ndarray

Ejemplo:

>>> x = np.arange(1,61).reshape(3,4,5)
>>> x.shape
(3,4,5)
>>> x
array([[[ 1,  2,  3,  4,  5],
        [ 6,  7,  8,  9, 10],
        [11, 12, 13, 14, 15],
        [16, 17, 18, 19, 20]],

       [[21, 22, 23, 24, 25],
        [26, 27, 28, 29, 30],
        [31, 32, 33, 34, 35],
        [36, 37, 38, 39, 40]],

       [[41, 42, 43, 44, 45],
        [46, 47, 48, 49, 50],
        [51, 52, 53, 54, 55],
        [56, 57, 58, 59, 60]]])
>>> y = np.moveaxis(x, 0, -1) # 将原来0轴(3页)中的3移动到最后一个轴(列),也就是变成3列。
>>> y
array([[[ 1, 21, 41],
        [ 2, 22, 42],
        [ 3, 23, 43],
        [ 4, 24, 44],
        [ 5, 25, 45]],

       [[ 6, 26, 46],
        [ 7, 27, 47],
        [ 8, 28, 48],
        [ 9, 29, 49],
        [10, 30, 50]],

       [[11, 31, 51],
        [12, 32, 52],
        [13, 33, 53],
        [14, 34, 54],
        [15, 35, 55]],

       [[16, 36, 56],
        [17, 37, 57],
        [18, 38, 58],
        [19, 39, 59],
        [20, 40, 60]]])
>>> y.shape # 移动后的形状成4页,5行,3列   
(4, 5, 3)

numpy.rollaxis()

Desplaza el eje especificado hacia atrás hasta que se encuentra en la posición dada.

numpy.rollaxis(a, axis, start=0)

Descripción de parámetros:

  • a: Recibir ndarray, matriz de entrada.
  • axis: recibe un entero, el eje que necesita ser desplazado.
  • start: opcional, recibe un entero.

valor de retorno:

  • Una vista del ndarray.

Ejemplo:

>>> a = np.ones((4,5,6)) # axis=0表示页,axis=1表示行,axis=2表示列
>>> np.rollaxis(a, 2, 1).shape # 将axis=2也就是列数6滚动到行axis=1也就是行
(4, 6, 5)

Supongo que te gusta

Origin blog.csdn.net/shield911/article/details/124229562
Recomendado
Clasificación