Numpy: operação de inversão da operação de matriz (Ndarray)


flip array

A inversão do array é também uma das operações mais importantes do array, que pertence à operação de mudança de forma ou dimensão. Isso pode ser alcançado pelos seguintes métodos, que possuem métodos pertencentes a ndarray e métodos pertencentes a numpy. Além disso, é transposta a propriedade do array (ndarray.T), que também pode realizar a função de inverter as linhas e colunas do array.

método ilustrar
ndarray.transpose() Retorna uma exibição de matriz dos eixos transpostos
ndarray.T transposição de matriz
numpy.swapaxes() Retorna uma exibição de matriz com axis1 e axis2 trocados.
numpy.moveaxis() Mova o eixo da matriz para uma nova posição.
numpy.rollaxis() Rola o eixo especificado para trás até que esteja na posição especificada.

método de matriz

ndarray.transpose()

Retorna uma exibição de matriz dos eixos transpostos.

ndarray.transpose(*axes)

Descrição do parâmetro:

  • eixos: opcional Nenhum, uma tupla de inteiros ou n inteiros.
    • Nenhum ou nenhum argumento: Inverte a ordem dos eixos.
    • Array inteiro: i na posição j na tupla significa que o eixo i de a se torna o eixo j de a.transpose().
    • n inteiros: Esta forma é funcionalmente idêntica à forma de tupla.

valor de retorno:

  • vista da matriz.

Se você não entender os parâmetros, veja o exemplo:

>>> 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]])

Ao mesmo tempo, você também pode consultar numpy.transpose(), a função é a mesma que esta função, mas os parâmetros são um pouco diferentes.

propriedade de matriz

Existe um atributo (ndarray.T) no array, que significa transpose, que troca as linhas e colunas do array. O exemplo é o seguinte:

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

método numpy

numpy.transpose()

numpy.transpose(a, axes=None)

Descrição do parâmetro:

  • a: array_like, array de entrada
  • eixos: tupla de inteiros ou lista de inteiros

valor de retorno:

  • ndarray, ver

Exemplo:

>>> 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)

Troque os dois eixos da matriz.

Descrição do parâmetro:

  • a: Recebe array_like, array de entrada.
  • axis1: recebe um inteiro, o primeiro eixo.
  • axis2: recebe um inteiro, o segundo eixo.

valor de retorno:

  • ndarray depois de trocar os eixos

Exemplo:

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

ndarray.moveaxis()

Mova o eixo da matriz para uma nova posição.

numpy.moveaxis(a, source, destination)

Descrição do parâmetro:

  • a: Recebe ndarray, o array que precisa girar o eixo.
  • source: Recebe um inteiro ou uma sequência de inteiros. A posição original do eixo a ser movido deve ser única.
  • destino: Recebe um inteiro ou uma sequência de inteiros. A posição de destino para cada eixo original também deve ser exclusiva.

valor de retorno:

  • ndarray

Exemplo:

>>> 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()

Rola o eixo especificado para trás até que esteja na posição especificada.

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

Descrição do parâmetro:

  • a: Recebe ndarray, array de entrada.
  • axis: recebe um inteiro, o eixo que precisa ser rolado.
  • start: opcional, recebe um inteiro.

valor de retorno:

  • Uma visão do ndarray.

Exemplo:

>>> 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)

Acho que você gosta

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