Numpy. Bekerja dengan tatasusunan dan matriks


Pustaka data NumPy

NumPy — perpustakaan sumber terbuka untuk bahasa pengaturcaraan Python, yang melaksanakan sejumlah besar operasi untuk bekerja dengan vektor, matriks dan tatasusunan. 

Algoritma matematik yang dilaksanakan dalam bahasa yang ditafsirkan (contohnya Python) selalunya jauh lebih perlahan daripada yang dilaksanakan dalam bahasa yang disusun (cth Fortran, C, Java). Pustaka NumPy menyediakan pelaksanaan algoritma pengiraan (dalam bentuk fungsi dan pengendali) yang dioptimumkan untuk bekerja dengan tatasusunan berbilang dimensi. 
Akibatnya, sebarang algoritma yang boleh dinyatakan sebagai jujukan operasi pada tatasusunan (matriks) dan dilaksanakan menggunakan NumPy adalah cukup pantas.

NumPy (Numeric Python) ialah perpustakaan matematik teras untuk bekerja dengan data. Pustaka ini mendasari perpustakaan lain untuk bekerja dengan pembelajaran mesin atau tugas analisis data (contohnya, Panda (berfungsi dengan data jadual), SciPy (kaedah pengoptimuman dan pengiraan saintifik), < tt>Matplotlib (memplot)).

 

Bekerja dengan NumPy

Untuk mula bekerja dengan perpustakaan numpy, anda perlu mengimportnya pada permulaan program seperti perpustakaan lain, import numpy atau lebih (yang digunakan lebih kerap) import numpy sebagai np



Vektor NumPy

Vektor (atau tatasusunan) dalam NumPy ialah set tersusun data homogen.

Unsur vektor boleh diakses oleh indeksnya, sama seperti ia dilakukan dalam senarai. Setiap elemen vektor mempunyai tempat tersendiri, yang ditetapkan semasa penciptaan.
Semua elemen vektor mempunyai jenis data yang sama (int, str, bool, dsb.).

Mencipta Vektor
Untuk mencipta vektor, anda perlu menggunakan pembina numpy.array (objek boleh lelar).
Tanda kurung menunjukkan sebarang objek boleh lelar: tuple, senarai, julat(), dsb.
 
Contoh 
import numpy sebagai np import numpy sebagai np print(np.array((1,2,3,4,5))) # vektor daripada tupel print(np.array([1,2,3,4,5])) # vektor daripada senarai print(np.array(julat(5))) # vektor daripada penjana

Bekerja dengan elemen vektor

Bekerja dengan elemen vektor adalah sama seperti elemen senarai, anda boleh mengakses elemen mengikut indeksnya, dan juga membuat kepingan.

Contoh
1
2
3
4
5
6
7
import numpy sebagai np V = np.array((1,2,3,4)) cetak(V[0]) # 1 cetak(V[-1]) # 4 cetak(V[1:-2]) # [2] print(V[::2]) # [1 3]
Memilih elemen vektor
Untuk memilih elemen vektor, anda boleh menggunakan vektor yang mengandungi nilai logik (ungkapan). Unsur-unsur vektor yang akan menjadi True dalam vektor dengan nilai boolean ​​akan dipilih.
 

Contoh
import numpy sebagai np V = np.array([1,-2,3,-4,5]) # pilih dua elemen pertama vektor print(V[np.array((Betul, Betul, Salah, Salah, Salah))]) # [ 1 -2] # pilih elemen vektor positif cetak(V[V > 0]) # [1 3 5] # pilih elemen vektor genap cetak(V[V % 2 == 0]) # [-2 -4]

Cara untuk mencipta tatasusunan dan matriks

Cara lain yang berguna untuk mencipta tatasusunan dan matriks.

Contoh
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
sebelas
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
tiga puluh
31
32
33
34
35
36
37
import numpy sebagai np # Tatasusunan sifar satu dimensi print(np.sifar(5)) #[0. 0.0.0.0.] # Tatasusunan sifar dua dimensi print(np.sifar((2, 3))) # [[0. 0.0.] #[0. 0.0.]] # Tatasusunan unit 3D print(np.ones((2,3,4))) # [[[1. 1. 1. 1.] # [1. 1. 1. 1.] # [1. 1. 1. 1.]] # # [[1. 1. 1. 1.] # [1. 1. 1. 1.] # [1. 1. 1. 1.]]] # Tatasusunan sifar dengan petunjuk jenis print(np.zeros(5, dtype=np.int)) # [0 0 0 0 0] # Tatasusunan berdasarkan senarai senarai print(np.array([[1,2.0],[0,0],(1,3.)])) # [[1. 2.] #[0. 0.] # [1. 3.]] # Tatasusunan yang diisi dengan unsur janjang aritmetik bermula dari 0 print(np.arange(10)) # [0 1 2 3 4 5 6 7 8 9] # Janjang aritmetik dengan petunjuk jenis print(np.arange(2, 10, dtype=np.float)) # [2. 3. 4. 5. 6. 7. 8. 9.] # Janjang aritmetik dengan beza bukan integer print(np.arange(2, 3, 0.1)) # [2. 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9] # Janjang aritmetik dengan bilangan sebutan tertentu print(np.linspace(1., 4., 6)) # [1. 1.6 2.2 2.8 3.4 4.
Sifar elemen tatasusunan
 
Fungsi bukan sifar(V) 
Hasilnya ialah satu tuple tatasusunan. Setiap tatasusunan sedemikian sepadan dengan paksi berasingan tatasusunan asal dan mengandungi indeks dengan unsur bukan sifar dalam tatasusunan ini.
V - a NumPy array atau objek seperti tatasusunan.
Mengembalikan Python tuple (tuple) - tuple dengan tatasusunan indeks unsur bukan sifar daripada tatasusunan asal V.
 
Fungsi count_nonzero(V) 
Fungsi ini berdasarkan kaedah terbina dalam  __bool__() objek Python yang menyemak sama ada ia benar. Ia berikutan bahawa fungsi  count_nonzero() sebenarnya boleh berfungsi bukan sahaja dengan nombor, tetapi juga dengan mana-mana objek yang boleh sama ada benar atau palsu.
V - a NumPy array atau objek seperti tatasusunan.
Fungsi ini mengembalikan bilangan elemen tatasusunan bukan sifar di sepanjang paksi yang ditentukan.

Susun Serong

Fungsi  diag(V, k=0) membolehkan anda mengekstrak pepenjuru daripada tatasusunan, serta membina tatasusunan pepenjuru daripada tatasusunan satu dimensi.
V - Objek seperti tatasusunan, tatasusunan dua dimensi atau satu dimensi, matriks, senarai atau tupel, atau sebarang fungsi atau objek dengan kaedah yang mengembalikan senarai atau tupel.
k - indeks pepenjuru (pilihan).
Lalai ialah k = 0 yang sepadan dengan pepenjuru utama. Nilai k positif menggerakkan pepenjuru ke atas, nilai negatif menggerakkannya ke bawah.

Fungsi mengembalikan tatasusunan NumPy (ndarray) - pepenjuru tatasusunan yang ditentukan atau tatasusunan pepenjuru daripada tatasusunan satu dimensi yang ditentukan.

tatasusunan NumPy 2D

Elemen tatasusunan dua dimensi diakses dengan menentukan koordinat elemen, pertama nombor baris, kemudian nombor lajur. Koordinat dipisahkan dengan koma. 
Sebarang tatasusunan boleh ditukar kepada tatasusunan dua dimensi menggunakan fungsi reshape().

Contoh
1
2
3
4
5
6
7
8
# Fungsi reshape() mengubah bentuk tatasusunan tanpa mengubah datanya. x = np.arange(12).bentuk semula(3, 4) cetak(x) # [[ 0 1 2 3] # [ 4 5 6 7] # [ 8 9 10 11]] # Untuk mengakses elemen, nyatakan koordinatnya yang dipisahkan dengan koma print(x[1, 2]) # 6