Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk membalikkan matriks atau nArray dalam Python?

Bagaimana untuk membalikkan matriks atau nArray dalam Python?

WBOY
WBOYke hadapan
2023-09-09 11:29:021517semak imbas

Bagaimana untuk membalikkan matriks atau nArray dalam Python?

Dalam artikel ini, kami akan menunjukkan kepada anda cara mengira songsangan matriks atau ndArray menggunakan perpustakaan NumPy dalam Python.

Apakah songsang bagi matriks?

Invers bagi matriks adalah sedemikian rupa sehingga jika ia didarab dengan matriks asal, ia memberikan matriks identiti.

Invers bagi matriks hanyalah salingan matriks, sama seperti dalam aritmetik biasa, untuk nombor tunggal yang digunakan untuk menyelesaikan persamaan untuk mendapatkan nilai pembolehubah yang tidak diketahui. Songsangan matriks ialah matriks yang apabila didarab dengan matriks asal menghasilkan matriks identiti.

Invers matriks hanya wujud apabila matriks bukan tunggal, iaitu penentunya bukan 0. Kita boleh mencari songsangan matriks segi empat sama menggunakan penentu dan matriks bersebelahan menggunakan formula berikut

if det(A) != 0
 A-1 = adj(A)/det(A)
else
 "Inverse does not exist"

Kaedah 1 - Gunakan fungsi numpy.linalg.inv() pada jenis np.array()

numpy.linalg.inv() fungsi

Python mempunyai cara yang sangat mudah untuk mengira songsangan matriks. Untuk mengira songsangan matriks, gunakan fungsi numpy.linalg.inv() daripada modul NumPy dalam Python untuk memintas matriks.

Tatabahasa

numpy.linalg.inv(array)

Parameter

array - Ia adalah matriks yang mesti disongsangkan.

Nilai pulangan - Fungsi numpy.linalg.inv() mengembalikan matriks songsang matriks.

Algoritma (langkah)

Berikut adalah algoritma/langkah yang perlu diikuti untuk melaksanakan tugas yang diperlukan -

  • Gunakan kata kunci import untuk mengimport modul numpy dengan alias (np).

  • Gunakan fungsi numpy.array() (yang mengembalikan ndarray. ndarray ialah objek tatasusunan yang memenuhi keperluan yang diberikan) untuk mencipta tatasusunan numpy dengan menghantar tatasusunan 3 dimensi(3baris, 3lajur) sebagai tatasusunannya hujah.

  • Gunakan fungsi linalg.inv() modul numpy (kira songsangan matriks) untuk mengira songsangan matriks 3x3 input dengan menghantar matriks input sebagai hujah dan mencetak matriks songsang.

Contoh

Atur cara berikut menggunakan fungsi numpy.linalg.inv() untuk mengembalikan songsangan input matriks 3-dimensi (3x3) -

# importing numpy module with an alias name
import numpy as np

# creating a 3-Dimensional(3x3) numpy matrix
inputArray_3d = np.array([[4, 5, 1],
   [3, 4, 12],
   [10, 2, 1]])

# printing the input 3D matrix
print("The input numpy 3D matrix:")
print(inputArray_3d)

# calculating the inverse of an input 3D matrix
resultInverse= np.linalg.inv(inputArray_3d)

# printing the resultant inverse of an input matrix
print("The Inverse of 3-Dimensional(3x3) numpy matrix:")
print(resultInverse)

Output

Apabila dilaksanakan, program di atas akan menjana output berikut -

The input numpy 3D matrix:
[[ 4  5  1]
 [ 3  4 12]
 [10  2  1]]
The Inverse of 3-Dimensional(3x3) numpy matrix:
[[-0.04246285 -0.00636943  0.11889597]
 [ 0.24840764 -0.01273885 -0.0955414 ]
 [-0.07218684  0.08917197  0.00212314]]

Kaedah 2 - Menggunakan fungsi scipy.linalg.inv()

scipy.linalg.inv()

Menggunakan fungsi modul scipy, kami boleh melakukan pelbagai pengiraan saintifik. Ia juga berfungsi dengan tatasusunan numpy.

Dalam Python, scipy.linalg.inv() juga boleh mengembalikan matriks songsang bagi matriks segi empat sama tertentu. Ia berfungsi sama seperti fungsi numpy.linalg.inv().

Algoritma (langkah)

Berikut adalah algoritma/langkah yang perlu diikuti untuk melaksanakan tugas yang diperlukan -

  • Gunakan kata kunci import untuk mengimport linalg daripada modul scipy.

  • Gunakan fungsi numpy.matrix() (yang mengembalikan matriks daripada rentetan data atau objek seperti tatasusunan. Matriks yang terhasil ialah tatasusunan 2D khusus) untuk mencipta matriks numpy dengan menukar tatasusunan 2D (2 rows , 2 columns) dihantar kepadanya sebagai parameter.

  • Gunakan fungsi linalg.inv() modul scipy (kira songsangan matriks) untuk mengira songsangan matriks 2x2 input dengan menghantar matriks input sebagai hujah dan mencetak matriks songsang.

    Contoh

    import numpy as np
    # importing linalg from scipy module
    from scipy import linalg
    
    # creating a 2-Dimensional(2x2) NumPy matrix
    inputMatrix = np.matrix([[5, 2],[7, 3]])
    
    # printing the input 2D matrix
    print("The input numpy 2D matrix:")
    print(inputMatrix)
    
    # calculating the inverse of an input 2D matrix
    resultInverse = linalg.inv(inputMatrix)
    
    # printing the resultant inverse of an input matrix
    print("The Inverse of 2-Dimensional(2x2) numpy matrix:")
    print(resultInverse)
    

    Output

    The input numpy 2D matrix:
    [[5 2]
    [7 3]]
    The Inverse of 2-Dimensional(2x2) numpy matrix:
    [[ 3. -2.]
    [-7. 5.]]
    

    Kaedah 3 - Gunakan fungsi numpy.linalg.inv() pada jenis np.matrix()

    Algoritma (langkah)

    Berikut adalah algoritma/langkah yang perlu diikuti untuk melaksanakan tugas yang diperlukan -

    • Gunakan fungsi numpy.matrix() (yang mengembalikan matriks daripada rentetan data atau objek seperti tatasusunan. Matriks yang terhasil ialah tatasusunan 4D khusus) untuk mencipta matriks numpy dengan menukar tatasusunan 4 dimensi (4 baris, 4 lajur) dihantar kepadanya sebagai parameter.

      Contoh

      import numpy as np
      
      # creating a NumPy matrix (4x4 matrix) using matrix() method
      inputMatrix = np.matrix('[11, 1, 8, 2; 11, 3, 9 ,1; 1, 2, 3, 4; 9, 8, 7, 6]')
      
      # printing the input 4D matrix
      print("The input NumPy matrix:")
      print(inputMatrix)
      
      # calculating the inverse of an input matrix
      resultInverse= np.linalg.inv(inputMatrix)
      
      # printing the resultant inverse of an input matrix
      print("The Inverse of 4-Dimensional(4x4) numpy matrix:")
      print(resultInverse)
      

      Output

      The input NumPy matrix:
      [[11 1 8 2]
      [11 3 9 1]
      [ 1 2 3 4]
      [ 9 8 7 6]]
      The Inverse of 4-Dimensional(4x4) numpy matrix:
      [[ 0.25   -0.23214286   -0.24107143   0.11607143]
      [-0.25     0.16071429   -0.09464286   0.11964286]
      [-0.25     0.375         0.3125      -0.1875    ]
      [ 0.25    -0.30357143    0.12321429   0.05178571]]
      

      Kesimpulan

      Dalam artikel ini, kami mempelajari cara mengira songsangan matriks menggunakan tiga contoh berbeza. Kami belajar cara mendapatkan matriks dalam Numpy menggunakan dua kaedah berbeza: numpy.array() dan NumPy.matrix().

      Atas ialah kandungan terperinci Bagaimana untuk membalikkan matriks atau nArray dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

      Kenyataan:
      Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam