Rumah > Artikel > pembangunan bahagian belakang > 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.
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"
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.
numpy.linalg.inv(array)
array - Ia adalah matriks yang mesti disongsangkan.
Nilai pulangan - Fungsi numpy.linalg.inv() mengembalikan matriks songsang matriks.
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.
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)
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]]
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().
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.
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)
The input numpy 2D matrix: [[5 2] [7 3]] The Inverse of 2-Dimensional(2x2) numpy matrix: [[ 3. -2.] [-7. 5.]]
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.
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)
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]]
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!