Python Matrix dan Pengantar NumPy

Pada artikel ini, kita akan belajar tentang matriks Python menggunakan daftar bersarang, dan paket NumPy.

Matriks adalah struktur data dua dimensi di mana angka disusun menjadi baris dan kolom. Sebagai contoh:

Matriks ini adalah matriks 3x4 (dibaca "tiga kali empat") karena memiliki 3 baris dan 4 kolom.

Matriks Python

Python tidak memiliki tipe built-in untuk matriks. Namun, kami dapat memperlakukan daftar daftar sebagai matriks. Sebagai contoh:

 A = ((1, 4, 5), (-5, 8, 9)) 

Kita dapat memperlakukan daftar daftar ini sebagai matriks yang memiliki 2 baris dan 3 kolom.

Pastikan untuk mempelajari tentang daftar Python sebelum melanjutkan artikel ini.

Mari kita lihat cara bekerja dengan daftar bersarang.

 A = ((1, 4, 5, 12), (-5, 8, 9, 0), (-6, 7, 11, 19)) print("A =", A) print("A(1) =", A(1)) # 2nd row print("A(1)(2) =", A(1)(2)) # 3rd element of 2nd row print("A(0)(-1) =", A(0)(-1)) # Last element of 1st Row column = (); # empty list for row in A: column.append(row(2)) print("3rd column =", column) 

Saat kita menjalankan program, outputnya adalah:

 A = ((1, 4, 5, 12), (-5, 8, 9, 0), (-6, 7, 11, 19)) A (1) = (-5, 8, 9, 0) A (1) (2) = 9 A (0) (- 1) = 12 kolom ketiga = (5, 9, 11) 

Berikut beberapa contoh lainnya yang terkait dengan matriks Python menggunakan daftar bersarang.

  • Tambahkan dua matriks
  • Ubah urutan Matriks
  • Kalikan dua matriks

Menggunakan daftar bersarang sebagai matriks berfungsi untuk tugas komputasi sederhana, namun, ada cara yang lebih baik untuk bekerja dengan matriks dengan Python menggunakan paket NumPy.

NumPy Array

NumPy adalah paket untuk komputasi ilmiah yang memiliki dukungan untuk objek array berdimensi-N yang kuat. Sebelum Anda dapat menggunakan NumPy, Anda perlu menginstalnya. Untuk info lebih lanjut,

  • Kunjungi: Bagaimana cara menginstal NumPy?
  • Jika Anda menggunakan Windows, unduh dan instal distribusi anaconda dari Python. Muncul dengan NumPy dan beberapa paket lain yang terkait dengan ilmu data dan pembelajaran mesin.

Setelah NumPy diinstal, Anda dapat mengimpor dan menggunakannya.

NumPy menyediakan deretan angka multidimensi (yang sebenarnya adalah sebuah objek). Mari kita ambil contoh:

 import numpy as np a = np.array((1, 2, 3)) print(a) # Output: (1, 2, 3) print(type(a)) # Output: 

Seperti yang Anda lihat, kelas array NumPy dipanggil ndarray.

Bagaimana cara membuat array NumPy?

Ada beberapa cara untuk membuat array NumPy.

1. Array bilangan bulat, float dan Bilangan kompleks

 import numpy as np A = np.array(((1, 2, 3), (3, 4, 5))) print(A) A = np.array(((1.1, 2, 3), (3, 4, 5))) # Array of floats print(A) A = np.array(((1, 2, 3), (3, 4, 5)), dtype = complex) # Array of complex numbers print(A) 

Saat Anda menjalankan program, hasilnya adalah:

 ((1 2 3) (3 4 5)) ((1.1 2. 3.) (3. 4. 5.)) ((1. + 0.j 2. + 0.j 3. + 0.j) (3. + 0.j 4. + 0.j 5. + 0.j)) 

2. Susunan angka nol dan satu

 import numpy as np zeors_array = np.zeros( (2, 3) ) print(zeors_array) ''' Output: ((0. 0. 0.) (0. 0. 0.)) ''' ones_array = np.ones( (1, 5), dtype=np.int32 ) // specifying dtype print(ones_array) # Output: ((1 1 1 1 1)) 

Di sini, kami telah menentukan dtype32 bit (4 byte). Karenanya, array ini dapat mengambil nilai dari menjadi .-2-312-31-1

3. Menggunakan arange () dan shape ()

 import numpy as np A = np.arange(4) print('A =', A) B = np.arange(12).reshape(2, 6) print('B =', B) ''' Output: A = (0 1 2 3) B = (( 0 1 2 3 4 5) ( 6 7 8 9 10 11)) ''' 

Pelajari lebih lanjut tentang cara lain untuk membuat array NumPy.

Operasi Matriks

Di atas, kami berikan 3 contoh: penjumlahan dua matriks, perkalian dua matriks, dan transposisi matriks. Kami menggunakan daftar bersarang sebelumnya untuk menulis program tersebut. Mari kita lihat bagaimana kita bisa melakukan tugas yang sama menggunakan array NumPy.

Penambahan Dua Matriks

Kami menggunakan +operator untuk menambahkan elemen yang sesuai dari dua matriks NumPy.

 import numpy as np A = np.array(((2, 4), (5, -6))) B = np.array(((9, -3), (3, 6))) C = A + B # element wise addition print(C) ''' Output: ((11 1) ( 8 0)) '''

Perkalian Dua Matriks

Untuk mengalikan dua matriks, kami menggunakan dot()metode. Pelajari lebih lanjut tentang cara kerja numpy.dot.

Catatan: * digunakan untuk perkalian array (perkalian elemen yang sesuai dari dua array) bukan perkalian matriks.

 import numpy as np A = np.array(((3, 6, 7), (5, -3, 0))) B = np.array(((1, 1), (2, 1), (3, -3))) C = A.dot(B) print(C) ''' Output: (( 36 -12) ( -1 2)) ''' 

Mengubah urutan Matriks

Kami menggunakan numpy.transpose untuk menghitung transpos matriks.

 import numpy as np A = np.array(((1, 1), (2, 1), (3, -3))) print(A.transpose()) ''' Output: (( 1 2 3) ( 1 1 -3)) ''' 

Seperti yang Anda lihat, NumPy membuat tugas kami jauh lebih mudah.

Mengakses elemen matriks, baris, dan kolom

Mengakses elemen matriks

Mirip seperti daftar, kita dapat mengakses elemen matriks menggunakan index. Mari kita mulai dengan array NumPy satu dimensi.

 import numpy as np A = np.array((2, 4, 6, 8, 10)) print("A(0) =", A(0)) # First element print("A(2) =", A(2)) # Third element print("A(-1) =", A(-1)) # Last element 

Saat Anda menjalankan program, hasilnya adalah:

 A (0) = 2 A (2) = 6 A (-1) = 10 

Sekarang, mari kita lihat bagaimana kita dapat mengakses elemen dari array dua dimensi (yang pada dasarnya adalah matriks).

 import numpy as np A = np.array(((1, 4, 5, 12), (-5, 8, 9, 0), (-6, 7, 11, 19))) # First element of first row print("A(0)(0) =", A(0)(0)) # Third element of second row print("A(1)(2) =", A(1)(2)) # Last element of last row print("A(-1)(-1) =", A(-1)(-1)) 

Saat kita menjalankan program, outputnya adalah:

 A (0) (0) = 1 A (1) (2) = 9 A (-1) (- 1) = 19 

Akses baris Matriks

 import numpy as np A = np.array(((1, 4, 5, 12), (-5, 8, 9, 0), (-6, 7, 11, 19))) print("A(0) =", A(0)) # First Row print("A(2) =", A(2)) # Third Row print("A(-1) =", A(-1)) # Last Row (3rd row in this case)

Saat kita menjalankan program, outputnya adalah:

 A (0) = (1, 4, 5, 12) A (2) = (-6, 7, 11, 19) A (-1) = (-6, 7, 11, 19) 

Akses kolom dari sebuah Matriks

 import numpy as np A = np.array(((1, 4, 5, 12), (-5, 8, 9, 0), (-6, 7, 11, 19))) print("A(:,0) =",A(:,0)) # First Column print("A(:,3) =", A(:,3)) # Fourth Column print("A(:,-1) =", A(:,-1)) # Last Column (4th column in this case) 

Saat kita menjalankan program, outputnya adalah:

 A (:, 0) = (1 -5 -6) A (:, 3) = (12 0 19) A (:, - 1) = (12 0 19) 

Jika Anda tidak mengetahui cara kerja kode di atas, baca bagian mengiris matriks di artikel ini.

Mengiris Matriks

Pemotongan array NumPy satu dimensi mirip dengan daftar. Jika Anda tidak tahu cara kerja slice untuk daftar, kunjungi Memahami notasi slice Python.

Mari kita ambil contoh:

 import numpy as np letters = np.array((1, 3, 5, 7, 9, 7, 5)) # 3rd to 5th elements print(letters(2:5)) # Output: (5, 7, 9) # 1st to 4th elements print(letters(:-5)) # Output: (1, 3) # 6th to last elements print(letters(5:)) # Output:(7, 5) # 1st to last elements print(letters(:)) # Output:(1, 3, 5, 7, 9, 7, 5) # reversing a list print(letters(::-1)) # Output:(5, 7, 9, 7, 5, 3, 1) 

Sekarang, mari kita lihat bagaimana kita dapat mengiris matriks.

 import numpy as np A = np.array(((1, 4, 5, 12, 14), (-5, 8, 9, 0, 17), (-6, 7, 11, 19, 21))) print(A(:2, :4)) # two rows, four columns ''' Output: (( 1 4 5 12) (-5 8 9 0)) ''' print(A(:1,)) # first row, all columns ''' Output: (( 1 4 5 12 14)) ''' print(A(:,2)) # all rows, second column ''' Output: ( 5 9 11) ''' print(A(:, 2:5)) # all rows, third to the fifth column '''Output: (( 5 12 14) ( 9 0 17) (11 19 21)) ''' 

Seperti yang Anda lihat, menggunakan NumPy (daripada daftar bersarang) membuatnya lebih mudah untuk bekerja dengan matriks, dan kami bahkan belum menggores dasar-dasarnya. Kami menyarankan Anda untuk menjelajahi paket NumPy secara detail terutama jika Anda mencoba menggunakan Python untuk ilmu data / analitik.

Sumber Daya NumPy yang mungkin berguna bagi Anda:

  • Tutorial NumPy
  • Referensi NumPy

Artikel yang menarik...