Dokumentasi resmi menjawab pertanyaan “bagaimana perilaku fungsi ini?”, sedangkan buku menjawab pertanyaan yang lebih besar: “bagaimana konsep-konsep ini dirangkai menjadi alur kerja yang utuh?” Buku memberi jalur baca yang sudah dikurasi penulisnya — sesuatu yang tidak bisa diberikan halaman fungsi yang saling lepas.
Bab ini merangkum beberapa buku yang paling sering disebut komunitas NumPy, menjelaskan keunggulan masing-masing, lalu membahas satu jebakan yang hampir pasti kita temui: buku yang terbit sebelum NumPy 2.0 memuat pola kode yang sudah tidak berlaku.
Buku Klasik dan Fokusnya #
Tabel berikut merangkum buku-buku yang layak dicari. Semuanya dibahas tanpa tautan; cukup cari judulnya di toko buku atau perpustakaan daring.
| Buku | Penulis | Fokus utama | Paling cocok untuk |
|---|---|---|---|
| Guide to NumPy | Travis E. Oliphant | Desain dan internal ndarray, ditulis oleh penulis pendiri NumPy | Memahami cara kerja array dari sudut pandang perancang pustaka |
| Python for Data Analysis | Wes McKinney | NumPy, pandas, dan alur analisis data tabel | Praktisi yang ingin analisis data end-to-end |
| Elegant SciPy | Juan Nunez-Iglesias, Stefan van der Walt, Harriet Dashnow | Studi kasus SciPy di atas fondasi NumPy | Menyerap gaya kode idiomatik lewat contoh nyata |
| Numerical Python | Robert Johansson | Perhitungan numerik dan aplikasi sains-teknik | Pembaca yang menyukai pendekatan matematis |
| Python Data Science Handbook | Jake VanderPlas | NumPy, pandas, Matplotlib, dan scikit-learn | Gambaran menyeluruh ekosistem data science Python |
Dari kelima buku itu, Guide to NumPy paling teknis dan sudah lama terbit — nilainya pada penjelasan internal, bukan pada versi API-nya. Python for Data Analysis paling sering diperbarui dan menjadi rujukan de facto alur kerja data. Sisanya melengkapi dari sisi gaya penulisan dan cakupan aplikasi.
Menyesuaikan Buku Era Lama dengan NumPy 2.x #
NumPy 2.0 (Juni 2024) menghapus sejumlah alias lama yang kelihatan di banyak buku dan tutorial terbitan sebelum 2024. Kode contoh dari buku lama bisa langsung gagal walau idenya masih benar. Mari kita periksa status beberapa nama yang sering muncul:
import numpy as np
print("Versi terpasang:", np.__version__)
for nama in ("float_", "NaN", "int_"):
print(f"np.{nama:<6} tersedia:", hasattr(np, nama))Output yang Dihasilkan:
Versi terpasang: 2.1.3
np.float_ tersedia: False
np.NaN tersedia: False
np.int_ tersedia: TrueHasilnya menunjukkan tiga nasib yang berbeda: np.float_ dan np.NaN sudah dihapus di NumPy 2.0, sedangkan np.int_ masih tersedia walau bab Memilih Tipe Data yang Tepat menyarankan np.int64 yang lebih eksplisit. Bagaimana rasa ketika kode buku lama memanggil nama yang sudah dihapus?
import numpy as np
try:
np.float_(3.14)
except AttributeError as e:
print("AttributeError:", e)
print(np.float64(3.14))Output yang Dihasilkan:
AttributeError: `np.float_` was removed in the NumPy 2.0 release. Use `np.float64` instead.
3.14Mari kita bedah baris demi baris:
- Baris 3 (
try:): bloktry/exceptmenangkap kegagalan agar program tetap berjalan dan pesannya tercetak — pola yang kita pakai sejak bab Membaca Error NumPy. - Baris 4 (
np.float_(3.14)): NumPy 2.x menolak nama tersebut dan memunculkanAttributeError. - Baris 6 (
print("AttributeError:", e)): pesan error yang tercetak langsung menyebut penggantinya,np.float64— tim pengembang NumPy sengaja menulis pesan yang mengarahkan perbaikan. - Baris 7 (
np.float64(3.14)): bentuk modern yang setara dengan maksud kode lama, dan inilah yang sebaiknya kita tulis saat mengadaptasi buku.
Kesimpulan praktisnya: gunakan buku untuk konsep dan alur kerja, lalu jalankan setiap contohnya di interpreter versi terpasang kita. Bila ada pola pra-2.0, sesuaikan terlebih dahulu — daftar lengkap perubahannya ada di release notes yang kita bahas pada bab Dokumentasi Resmi.