Python Matrix dan Pengenalan kepada NumPy

Dalam artikel ini, kita akan belajar mengenai matriks Python menggunakan senarai bersarang, dan pakej NumPy.

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

Matriks ini adalah matriks 3x4 (diucapkan "tiga dengan empat") kerana mempunyai 3 baris dan 4 lajur.

Matriks Python

Python tidak mempunyai jenis bawaan untuk matriks. Walau bagaimanapun, kita boleh menganggap senarai senarai sebagai matriks. Sebagai contoh:

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

Kita boleh menganggap senarai senarai ini sebagai matriks yang mempunyai 2 baris dan 3 lajur.

Pastikan anda mengetahui mengenai senarai Python sebelum meneruskan artikel ini.

Mari lihat cara bekerja dengan senarai 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) 

Semasa 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 lajur ke-3 = (5, 9, 11) 

Berikut adalah beberapa contoh lain yang berkaitan dengan matriks Python menggunakan senarai bersarang.

  • Tambah dua matriks
  • Leraikan Matriks
  • Darabkan dua matriks

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

Array NumPy

NumPy adalah pakej untuk pengkomputeran saintifik yang mempunyai sokongan untuk objek array N-dimensi yang kuat. Sebelum anda boleh menggunakan NumPy, anda perlu memasangnya. Untuk maklumat lanjut,

  • Lawati: Bagaimana memasang NumPy?
  • Sekiranya anda menggunakan Windows, muat turun dan pasang edaran anaconda Python. Ia dilengkapi dengan NumPy dan beberapa pakej lain yang berkaitan dengan sains data dan pembelajaran mesin.

Setelah NumPy dipasang, anda boleh mengimport dan menggunakannya.

NumPy menyediakan susunan nombor multidimensi (yang sebenarnya merupakan 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 membuat array NumPy?

Terdapat beberapa cara untuk membuat tatasusunan NumPy.

1. Array bilangan bulat, terapung dan Nombor 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) 

Semasa anda menjalankan program, outputnya 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 sifar dan yang lain

 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 menetapkan dtypekepada 32 bit (4 bait). Oleh itu, susunan ini dapat mengambil nilai dari ke .-2-312-31-1

3. Menggunakan arange () dan bentuk ()

 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)) ''' 

Ketahui lebih lanjut mengenai cara lain untuk membuat array NumPy.

Operasi Matriks

Di atas, kami memberi anda 3 contoh: penambahan dua matriks, pendaraban dua matriks dan pemindahan matriks. Kami menggunakan senarai bersarang sebelum ini untuk menulis program-program tersebut. Mari lihat bagaimana kita dapat 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)) '''

Pendaraban Dua Matriks

Untuk mengalikan dua matriks, kami menggunakan dot()kaedah. Ketahui lebih lanjut mengenai bagaimana numpy.dot berfungsi.

Catatan: * digunakan untuk pendaraban array (pendaraban unsur sepadan dari dua tatasusunan) bukan pendaraban 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)) ''' 

Leraikan Matriks

Kami menggunakan numpy.transpose untuk mengira transpose 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 menjadikan tugas kami lebih mudah.

Akses elemen matriks, baris dan lajur

Akses elemen matriks

Sama seperti senarai, kita dapat mengakses elemen matriks menggunakan indeks. Mari mulakan dengan susunan 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 

Semasa anda menjalankan program, outputnya adalah:

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

Sekarang, mari kita lihat bagaimana kita dapat mengakses elemen 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)) 

Semasa 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)

Semasa kita menjalankan program, outputnya adalah:

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

Akses lajur 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) 

Semasa kita menjalankan program, outputnya adalah:

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

Sekiranya anda tidak tahu bagaimana kod di atas berfungsi, baca potongan bahagian matriks artikel ini.

Kepingan Matriks

Kepingan array NumPy satu dimensi serupa dengan senarai. Sekiranya anda tidak tahu cara kerja pemotongan senarai, kunjungi Memahami nota irisan 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 memotong 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 (bukannya senarai bersarang) menjadikannya lebih mudah untuk bekerja dengan matriks, dan kami bahkan belum menggaru asasnya. Kami mencadangkan anda untuk meneroka pakej NumPy secara terperinci terutamanya jika anda ingin menggunakan Python untuk sains data / analitik.

Sumber NumPy yang mungkin berguna bagi anda:

  • Tutorial NumPy
  • Rujukan NumPy

Artikel menarik...