Diretório de artigos
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)