Cálculo da matriz Python

1. Construa uma matriz
* 1), construa uma função matriz
asmatrix () na forma definida .
(1) uma matriz que estabelece uma matriz de
matriz de função (de dados, dtipo = Nenhum, copiar = TRUE), os dados de um tipo de conjunto de numérico
juntos do objecto, do tipo DTYPE especificar a matriz de saída, copiar = True compilação cópia profunda
estabelecer novos objectos da matriz, copy = False apenas cria visualizações com base em objetos de coleção (
consulte a seção 5.2 para os princípios de cópia profunda e visualização). A função é semelhante à função mat (),

import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9]])  #先建立数组
A = np.matrix([[1,2,3],[4,5,6],[7,8,9]])  #后建立矩阵
print(a,b)

matriz ([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])

  A

matrix ([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
2. Construir uma
função de matriz aninhada bmat (obj), onde obj é um objeto de coleção, onde o índice principal da coleção Grupo, matriz.

A1 = np.matrix([1,2,3])  #构建二维矩阵A1,函数matrix()自动会将一维列表转二维
B1 = np.matrix([4,5,6])   #构建二维矩阵B1
np.bmat([[A1],[B1]])    #矩阵嵌套,这里要求A1,B1长度一致,否则出错

matrix ([[1, 2, 3],
[4, 5, 6]])
** 3. Construir a
função de matriz de coordenada (grade) meshgrid (* xi, ** kwargs), * xi representa um objeto de matriz de coordenadas unidimensional , Como x, y, z representando um objeto de matriz unidimensional de valores de coordenadas (x, y, z); kwargs aceita parâmetros de par de valores-chave, como sparsel = True retorna uma matriz esparsa, copy = False retorna uma visualização da matriz original.

x = np.arange(3)
y = np.arange(4)
X,Y=np.meshgrid(x,y)
print('x数组: ',x)
print('y数组: ',y)
print('X矩阵: ',X)
print('Y矩阵: ',Y)

matriz x: [0 1 2]
matriz y: [0 1 2 3]
Matriz X: [[0 1 2]
[0 1 2]
[0 1 2]
[0 1 2]]
Matriz Y: [[0 0 0 ]
[1 1 1]
[2 2 2]
[3 3 3]]

2. Transposição da matriz e ajuste da dimensão
Em primeiro lugar, estabeleça a matriz original D a ser transposta.
1) Transpor matriz
Use o atributo de matriz T para girar cada coluna da matriz em cada linha (gire 90 graus no sentido anti-horário).

d = np.arange(9).reshape((3,3))
D = np.matrix(d)
D

matriz ([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])

D.T    #矩阵转置

matriz ([[0, 3, 6],
[1, 4, 7],
[2, 5, 8]])
2), mova a posição do eixo para a nova
função de posição moveaxis (a, fonte, destino), a é o conjunto Objeto, origem é a posição inicial do eixo e destino é a posição para onde o eixo se move. De 0 a -1 significa mover da esquerda para a direita, e de -1 a 0 significa mover da direita para a esquerda.

m1 = np.arange(24).reshape(2,3,4) #三维为2,二维3,一维为4
m1

matriz ([[[0, 1, 2, 3],
[4, 5, 6, 7],
[8, 9, 10, 11]],

   [[12, 13, 14, 15],
    [16, 17, 18, 19],
    [20, 21, 22, 23]]])
md = np.moveaxis(m1,0,-1)  #0为m1的第三维值下标,-1指向m1的第一维位置
md

matriz ([[[0, 12],
[1, 13],
[2, 14],
[3, 15]],

   [[ 4, 16],
    [ 5, 17],
    [ 6, 18],
    [ 7, 19]],

   [[ 8, 20],
    [ 9, 21],
    [10, 22],
    [11, 23]]])

3). Role o eixo especificado para trás até a posição final.
Função rollaxis (a, axis, start = 0), a é uma matriz ou objeto de matriz, axis é a posição onde a rolagem termina e start é o eixo que começa a retroceder.

m2 = np.arange(24).reshape(2,3,4)
print(m2)
np.rollaxis(m2,1,0).shape

[[[0 1 2 3]
[4 5 6 7]
[8 9 10 11]]

[[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]]
(3, 2, 4)

4). Trocar as posições de dois eixos. Troca de eixos de
função (a, eixo1, eixo2), a é uma matriz ou objeto de matriz, eixo1 é a dimensão do primeiro eixo a ser trocado e eixo2 é a dimensão do segundo eixo a ser trocado.

m3 = np.arange(8).reshape(2,2,2)
m3

varray ([[[0, 1],
[2, 3]],

   [[4, 5],
    [6, 7]]])
np.swapaxes(m3,0,2)  #第一维的值与第三维的值对换

matriz ([[[0, 4],
[2, 6]],

   [[1, 5],
    [3, 7]]])

5), Transponha a
função de dimensão da transposição da matriz (a, eixos = Nenhum), a é uma matriz ou objeto de matriz e eixos é a lista de dimensão transposta ou tupla (sob o valor padrão de Nenhum, a transposição geral é igual ao atributo T) .

t1 = np.array([[1,2],[3,4]])
np.transpose(t1)   #数组转置

array ([[1, 3],
[2, 4]])
3. Encontre a matriz inversa .
Na álgebra linear, a matriz inversa de uma matriz será encontrada para facilitar os cálculos entre matrizes. A condição necessária e suficiente para que uma matriz A seja invertível é que o determinante | A | ≠ 0.
1) A função inv (a) encontra a matriz inversa de uma matriz quadrada, a é uma matriz ou objeto de matriz.

a = np.array([[1,2],[3,4]])   #必须是方阵
m1 = np.matrix(a)
mv = np.linalg.inv(m1)       #求矩阵逆矩阵
mv

matriz ([[- 2., 1.],
[1,5, -0,5]]) O método para
verificar se o resultado do cálculo da matriz inversa está correto é que o produto da matriz original e da matriz inversa é a matriz identidade.


matriz m1 * mv ([[1.00000000e + 00, 1.11022302e-16],
[0,00000000e + 00, 1.00000000e + 00]])

2) Matriz inversa generalizada (matriz pseudo-inversa)
Além de encontrar a matriz inversa de uma matriz quadrada, Numpy fornece uma função pinv (a, rcond = 1e-15) para encontrar uma matriz pseudo-inversa para matrizes gerais, onde a é qualquer matriz ou array, rcond é o valor do erro (pequeno valor singular).

    a = np.arange(9).reshape((3,3))
np.linalg.pinv(a)    #求伪逆矩阵

array ([[- 5.55555556e-01, -1.66666667e-01, 2.22222222e-01],
[-5.55555556e-02, 1.83880688e-16, 5.55555556e-02],
[4.44444444e-01, 1.66666667e-01 , -1.11111111e-01]])

Acho que você gosta

Origin blog.csdn.net/changshupx/article/details/108548231
Recomendado
Clasificación