- Apa itu pakej Python NumPy?
- Susunan NumPy
- Operasi berbeza yang boleh dilakukan pada tatasusunan NumPy
- Beberapa fungsi yang lebih istimewa
Apa itu pakej Python NumPy?
Ringkasnya, NumPy bermaksud 'Numerical Python' dan itulah yang ingin dipenuhi, untuk membolehkan operasi berangka yang kompleks dilakukan pada objek array N-dimensi dengan sangat mudah dan intuitif. Ia adalah perpustakaan teras yang digunakan di pengkomputeran saintifik, dengan fungsi hadir untuk melakukan operasi algebra linear dan operasi statistik.
Salah satu konsep yang paling asas (dan menarik) bagi NumPy adalah penggunaan objek array N-dimensi. Kita boleh mengambil susunan ini hanya sebagai koleksi baris dan lajur, sama seperti fail MS-Excel. Adalah mungkin untuk menukar senarai Python menjadi array NumPy dan menjalankan fungsi di atasnya.
Perwakilan NumPy Array
Sekadar catatan sebelum memulakan, kami menggunakan persekitaran maya untuk pelajaran ini yang kami buat dengan arahan berikut:
python -m virtualenv numpysumber numpy / bin / aktifkan
Setelah persekitaran maya aktif, kita dapat memasang perpustakaan numpy di env maya sehingga contoh yang kita buat seterusnya dapat dilaksanakan:
memasang pip numpyKami melihat sesuatu seperti ini semasa kami melaksanakan perintah di atas:
Mari kita cepat menguji apakah pakej NumPy telah dipasang dengan betul dengan coretan kod pendek berikut:
import numpy sebagai npa = np.tatasusunan ([1,2,3])
mencetak (a)
Sebaik sahaja anda menjalankan program di atas, anda akan melihat output berikut:
Kami juga boleh mempunyai tatasusunan pelbagai dimensi dengan NumPy:
multi_dimensi = np.tatasusunan ([(1, 2, 3), (4, 5, 6)])cetak (multi_dimensi)
Ini akan menghasilkan output seperti:
[[1 2 3][4 5 6]]
Anda juga boleh menggunakan Anaconda untuk menjalankan contoh-contoh ini yang lebih mudah dan itulah yang kami gunakan di atas. Sekiranya anda ingin memasangnya di mesin anda, lihat pelajaran yang menerangkan “Cara Memasang Anaconda Python di Ubuntu 18.04 LTS ”dan kongsi maklum balas anda. Sekarang, mari kita maju ke pelbagai jenis operasi yang dapat dilakukan dengan array Python NumPy.
Menggunakan tatasusunan NumPy ke atas senarai Python
Penting untuk bertanya bahawa apabila Python sudah memiliki struktur data yang canggih untuk menyimpan banyak item daripada mengapa kita memerlukan array NumPy sama sekali? Susunan NumPy adalah lebih disukai daripada senarai Python kerana sebab-sebab berikut:
- Mudah digunakan untuk operasi intensif matematik dan komputasi kerana adanya fungsi NumPy yang serasi
- Mereka jauh lebih pantas kerana cara mereka menyimpan data secara dalaman
- Kurang ingatan
Marilah kita membuktikan bahawa tatasusunan NumPy menempati memori yang kurang. Ini dapat dilakukan dengan menulis program Python yang sangat sederhana:
import numpy sebagai npmasa import
import sys
python_list = julat (500)
mencetak (sys.getizeof (1) * len (senarai python))
numpy_arr = np.arange (500)
cetak (numpy_arr.saiz * numpy_arr.item)
Apabila kita menjalankan program di atas, kita akan mendapat output berikut:
140004000
Ini menunjukkan bahawa senarai ukuran yang sama lebih daripada 3 kali dalam ukuran jika dibandingkan dengan susunan NumPy saiz yang sama.
Melakukan operasi NumPy
Di bahagian ini, marilah kita melihat dengan cepat operasi yang dapat dilakukan pada tatasusunan NumPy.
Mencari dimensi dalam pelbagai
Oleh kerana array NumPy dapat digunakan di ruang dimensi apa pun untuk menyimpan data, kita dapat menemukan dimensi array dengan potongan kode berikut:
import numpy sebagai npnumpy_arr = np.susunan ([(1,2,3), (4,5,6)])
cetak (numpy_arr.ndim)
Kami akan melihat output sebagai "2" kerana ini adalah array 2 dimensi.
Mencari jenis data item dalam pelbagai
Kita boleh menggunakan array NumPy untuk menyimpan sebarang jenis data. Sekarang mari kita ketahui jenis data dari data yang mengandungi array:
lain_arr = np.array ([('kagum', 'b', 'kucing')])cetak (lain_arr.dtaip)
numpy_arr = np.susunan ([(1,2,3), (4,5,6)])
cetak (numpy_arr.dtaip)
Kami menggunakan pelbagai jenis elemen dalam coretan kod di atas. Berikut adalah output yang akan ditunjukkan oleh skrip ini:
Ini berlaku kerana watak ditafsirkan sebagai watak unicode dan yang kedua jelas.
Susun semula item array
Sekiranya array NumPy terdiri dari 2 baris dan 4 lajur, ia boleh dibentuk semula untuk mengandungi 4 baris dan 2 lajur. Mari tulis coretan kod ringkas untuk perkara yang sama:
asli = np.susunan ([('1', 'b', 'c', '4'), ('5', 'f', 'g', '8')])cetak (asal)
dibentuk semula = asli.membentuk semula (4, 2)
cetak (dibentuk semula)
Sebaik sahaja kami menjalankan coretan kod di atas, kami akan mendapat output berikut dengan kedua-dua susunan dicetak ke skrin:
[['1' 'b' 'c' '4']]['5' 'f' 'g' '8']]
[['1' 'b']]
['c' '4']]
['5' 'f']
['g' '8']]
Perhatikan bagaimana NumPy menguruskan peralihan dan mengaitkan elemen ke baris baru.
Operasi matematik pada item pelbagai
Menjalankan operasi matematik pada item array sangat mudah. Kami akan mulakan dengan menulis coretan kod mudah untuk mengetahui maksimum, minimum dan penambahan semua item array. Berikut adalah coretan kod:
numpy_arr = np.tatasusunan ([(1, 2, 3, 4, 5)])cetak (numpy_arr.maks ())
cetak (numpy_arr.min ())
cetak (numpy_arr.jumlah ())
cetak (numpy_arr.bermaksud ())
mencetak (np.sqrt (numpy_arr))
mencetak (np.std (numpy_arr))
Dalam 2 operasi terakhir di atas, kami juga mengira punca kuasa dua dan sisihan piawai bagi setiap item array. Coretan di atas akan memberikan output berikut:
51
15
3.0
[[1. 1.41421356 1.73205081 2. 2.23606798]]
1.4142135623730951
Menukar senarai Python kepada tatasusunan NumPy
Walaupun anda telah menggunakan senarai Python dalam program yang ada dan anda tidak mahu mengubah semua kod itu tetapi masih ingin menggunakan tatasusunan NumPy dalam kod baru anda, ada baiknya kita mengetahui bahawa kita dapat menukar Python dengan mudah senarai ke array NumPy. Berikut adalah contoh:
# Buat 2 senarai baru tinggi dan berattinggi = [2.37, 2.87, 1.52, 1.51, 1.70, 2.05]
berat = [91.65, 97.52, 68.25, 88.98, 86.18, 88.45]
# Buat 2 susunan numpy dari tinggi dan berat
np_height = np.susunan (tinggi)
np_weight = np.susunan (berat)
Hanya untuk diperiksa, sekarang kita dapat mencetak jenis salah satu pemboleh ubah:
cetak (taip (np_height))Dan ini akan menunjukkan:
Kita sekarang dapat melakukan operasi matematik ke atas semua item sekaligus. Mari lihat bagaimana kita dapat mengira BMI orang:
# Hitung bmibmi = np_weight / np_height ** 2
# Cetak hasilnya
cetak (bmi)
Ini akan menunjukkan BMI semua orang yang dikira berdasarkan elemen:
[16.31682957 11.8394056 29.54033934 39.02460418 29.8200692 21.04699584]Bukankah itu mudah dan berguna? Kita bahkan dapat menapis data dengan mudah dengan keadaan sebagai pengganti indeks di dalam tanda kurung persegi:
bmi [bmi> 25]Ini akan memberi:
tatasusunan ([29.54033934, 39.02460418, 29.8200692])Buat urutan & pengulangan rawak dengan NumPy
Dengan banyak ciri yang terdapat di NumPy untuk membuat data rawak dan menyusunnya dalam bentuk yang diperlukan, tatasusunan NumPy banyak kali digunakan dalam menghasilkan set data ujian di banyak tempat, termasuk tujuan penyahpepijatan dan pengujian. Sebagai contoh, jika anda ingin membuat array dari 0 hingga n, kita dapat menggunakan arange (perhatikan single 'r') seperti potongan yang diberikan:
mencetak (np.arange (5))Ini akan mengembalikan output sebagai:
[0 1 2 3 4]Fungsi yang sama dapat digunakan untuk memberikan nilai yang lebih rendah sehingga array bermula dari angka lain daripada 0:
mencetak (np.arange (4, 12))Ini akan mengembalikan output sebagai:
[4 5 6 7 8 9 10 11]Angka-angka tidak perlu berterusan, mereka dapat melewati langkah memperbaiki seperti:
mencetak (np.arange (4, 14, 2))Ini akan mengembalikan output sebagai:
[4 6 8 10 12]Kami juga dapat memperoleh angka dalam urutan menurun dengan nilai langkau negatif:
mencetak (np.arange (14, 4, -1))Ini akan mengembalikan output sebagai:
[14 13 12 11 10 9 8 7 6 5]Adalah mungkin untuk membiayai nombor n antara x dan y dengan ruang yang sama dengan kaedah linspace, berikut adalah coretan kod untuk yang sama:
np.linspace (permulaan = 10, berhenti = 70, bilangan = 10, dtype = int)Ini akan mengembalikan output sebagai:
tatasusunan ([10, 16, 23, 30, 36, 43, 50, 56, 63, 70])Harap maklum bahawa item output tidak sama jaraknya. NumPy melakukan yang terbaik untuk melakukannya tetapi anda tidak perlu bergantung padanya seperti pembulatan.
Akhirnya, mari kita lihat bagaimana kita dapat menghasilkan sekumpulan urutan rawak dengan NumPy yang merupakan salah satu fungsi yang paling banyak digunakan untuk tujuan ujian. Kami akan memberikan rangkaian nombor ke NumPy yang akan digunakan sebagai titik awal dan akhir untuk nombor rawak:
mencetak (np.rawak.randint (0, 10, ukuran = [2,2]))Coretan di atas menghasilkan susunan NumPy 2 hingga 2 dimensi yang akan mengandungi nombor rawak antara 0 dan 10. Berikut adalah contoh output:
[[0 4][8 3]]
Harap maklum kerana nombornya adalah rawak, output dapat berbeza walaupun antara 2 larian pada mesin yang sama.
Kesimpulannya
Dalam pelajaran ini, kami melihat pelbagai aspek perpustakaan pengkomputeran ini yang dapat kami gunakan dengan Python untuk mengira masalah matematik yang sederhana dan kompleks yang boleh timbul dalam pelbagai kes penggunaan NumPy adalah salah satu perpustakaan pengiraan yang paling penting ketika datang ke kejuruteraan data dan mengira data berangka, pastinya kemahiran yang perlu kita miliki.
Sila kongsi maklum balas anda mengenai pelajaran di Twitter dengan @sbmaggarwal dan @LinuxHint.