Panduan Pengguna NumPy
Panduan pengantar komprehensif dan teknis tentang NumPy, mencakup instalasi, manipulasi array, indeksing, broadcasting, serta integrasi dengan C/C++.
Pelajaran
Gambaran Umum Kursus
📚 Ringkasan Konten
Gambaran pengantar komprehensif dan panduan teknis tentang NumPy, mencakup instalasi, manipulasi array, indeksing, broadcasting, serta integrasi dengan C/C++.
Kelola dasar-dasar komputasi ilmiah dalam Python dengan panduan resmi NumPy.
Penulis: Komunitas NumPy
Ucapan Terima Kasih: Ditulis oleh komunitas NumPy
🎯 Tujuan Pembelajaran
- Menjelaskan apa itu NumPy dan mengidentifikasi perannya dalam ekosistem Python ilmiah.
- Menjelaskan mengapa NumPy jauh lebih cepat daripada loop Python standar menggunakan konsep vektorisasi.
- Menjalankan perintah instalasi untuk berbagai lingkungan termasuk Pip, Conda, dan Raspberry Pi.
- Mengidentifikasi dan menafsirkan atribut utama
ndarraysepertindim,shape, dandtype. - Menjalankan pembuatan dan manipulasi array menggunakan fungsi seperti
linspace,reshape,vstack, danhstack. - Menerapkan operasi elemen per elemen, fungsi universal (ufuncs), dan solver aljabar linear pada dataset numerik.
- Mengelola presisi data dan mencegah kesalahan overflow menggunakan tipe skalar NumPy serta alat informasi (
iinfo,finfo). - Menerapkan pengambilan data fleksibel dari disk menggunakan
genfromtxtdengan pemisah kustom, header, dan pemilihan kolom. - Menerapkan Aturan Broadcasting Umum untuk memprediksi dan mengendalikan interaksi antara array dengan bentuk berbeda.
- Mengelola referensi memori dan menghindari "jebakan" dalam subclass
ndarraykhusus menggunakan atribut.base.
🔹 Pelajaran 1: Pengantar dan Persiapan Lingkungan
Ringkasan: Pelajaran ini memperkenalkan NumPy sebagai pustaka dasar untuk komputasi ilmiah dalam Python, menjelaskan keunggulan kinerjanya melalui vektorisasi. Siswa akan belajar cara menginstal pustaka ini di berbagai platform (Windows, Raspberry Pi, Conda, PyCharm) dan menyelesaikan hambatan instalasi umum seperti ImportError dengan mengelola variabel lingkungan dan dependensi sistem.
Hasil Pembelajaran:
- Mendefinisikan NumPy dan mengidentifikasi perannya dalam ekosistem Python ilmiah.
- Menjelaskan mengapa NumPy jauh lebih cepat daripada loop Python standar menggunakan konsep vektorisasi.
- Menjalankan perintah instalasi untuk berbagai lingkungan termasuk Pip, Conda, dan Raspberry Pi.
🔹 Pelajaran 2: Dasar-Dasar Inti dan Manipulasi Array
Ringkasan: Pelajaran ini memberikan pengantar komprehensif terhadap objek ndarray NumPy, mencakup atribut inti, metode pembuatan, dan operasi matematis dasar. Pelajaran ini juga meluas ke topik lanjutan seperti indeksing canggih (berbasis boolean dan integer), manipulasi bentuk, serta rutin aljabar linear penting. Di akhir modul ini, peserta akan mampu menyimpan, mentransformasi, dan menganalisis struktur data multi-dimensi secara efisien.
Hasil Pembelajaran:
- Mengidentifikasi dan menafsirkan atribut utama
ndarraysepertindim,shape, dandtype. - Menjalankan pembuatan dan manipulasi array menggunakan fungsi seperti
linspace,reshape,vstack, danhstack. - Menerapkan operasi elemen per elemen, fungsi universal (ufuncs), dan solver aljabar linear pada dataset numerik.
🔹 Pelajaran 3: Penanganan Data Lanjutan dan Broadcasting
Ringkasan: Pelajaran ini membahas mekanisme lanjutan NumPy, dengan fokus pada manajemen tipe data yang tepat, penanganan overflow, serta operasi I/O canggih menggunakan genfromtxt. Siswa akan menguasai logika internal Broadcasting untuk operasi aritmetika, nuansa urutan byte tingkat memori, serta pembuatan array struktur/record untuk dataset heterogen. Bagian akhir menjelaskan ekstensibilitas NumPy melalui kontainer array khusus dan protokol formal untuk subclassing ndarray.
Hasil Pembelajaran:
- Mengelola presisi data dan mencegah kesalahan overflow menggunakan tipe skalar NumPy serta alat informasi (
iinfo,finfo). - Menerapkan pengambilan data fleksibel dari disk menggunakan
genfromtxtdengan pemisah kustom, header, dan pemilihan kolom. - Menerapkan Aturan Broadcasting Umum untuk memprediksi dan mengendalikan interaksi antara array dengan bentuk berbeda.
🔹 Pelajaran 4: Ekspektasi Numerik dan Interfacing Bahasa
Ringkasan: Pelajaran ini mengeksplorasi nuansa lanjutan subclassing NumPy, khususnya mengenai manajemen memori dan kompatibilitas turunan. Pelajaran ini juga meninjau bagaimana NumPy menerapkan standar floating-point IEEE 754 untuk menangani nilai khusus dan ekspektasi numerik, diakhiri dengan mekanisme untuk menghubungkan array NumPy dengan bahasa tingkat rendah seperti C, C++, dan Fortran.
Hasil Pembelajaran:
- Mengelola referensi memori dan menghindari "jebakan" dalam subclass
ndarraykhusus menggunakan atribut.base. - Menjaga kompatibilitas turunan dengan menerapkan
__array_wrap__dan tanda tangan metode secara benar. - Mengidentifikasi dan memanipulasi nilai khusus IEEE 754 (NaN, Inf) serta mengonfigurasi perilaku ekspektasi numerik global.
🔹 Pelajaran 5: Memperluas NumPy dengan C-API
Ringkasan: Pelajaran ini mengeksplorasi berbagai metode untuk memperluas fungsi NumPy dengan berinteraksi dengan bahasa terkompilasi seperti C, C++, dan Fortran. Pelajaran ini mencakup alat otomatis seperti f2py dan Cython, wrapping manual dengan ctypes, pembuatan fungsi universal (ufuncs) berkinerja tinggi, serta teknik lanjutan C-API untuk iterasi array, tipe data khusus, dan subtyping ndarray.
Hasil Pembelajaran:
- Membandingkan dan menerapkan berbagai metode untuk "menghubungkan" kode terkompilasi dengan Python (f2py, Cython, ctypes).
- Membuat dan mendaftarkan fungsi universal NumPy (ufuncs) khusus untuk tipe data tunggal maupun ganda, termasuk array struktur.
- Menggunakan C-API NumPy untuk melakukan iterasi array secara efisien, menangani broadcasting, serta mendefinisikan tipe data atau subtype
ndarrayyang ditentukan pengguna.