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.

BukuPenulisFokus utamaPaling cocok untuk
Guide to NumPyTravis E. OliphantDesain dan internal ndarray, ditulis oleh penulis pendiri NumPyMemahami cara kerja array dari sudut pandang perancang pustaka
Python for Data AnalysisWes McKinneyNumPy, pandas, dan alur analisis data tabelPraktisi yang ingin analisis data end-to-end
Elegant SciPyJuan Nunez-Iglesias, Stefan van der Walt, Harriet DashnowStudi kasus SciPy di atas fondasi NumPyMenyerap gaya kode idiomatik lewat contoh nyata
Numerical PythonRobert JohanssonPerhitungan numerik dan aplikasi sains-teknikPembaca yang menyukai pendekatan matematis
Python Data Science HandbookJake VanderPlasNumPy, pandas, Matplotlib, dan scikit-learnGambaran 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:

python
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:

text
Versi terpasang: 2.1.3
np.float_ tersedia: False
np.NaN    tersedia: False
np.int_   tersedia: True

Hasilnya 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?

python
import numpy as np

try:
    np.float_(3.14)
except AttributeError as e:
    print("AttributeError:", e)
print(np.float64(3.14))

Output yang Dihasilkan:

text
AttributeError: `np.float_` was removed in the NumPy 2.0 release. Use `np.float64` instead.
3.14

Mari kita bedah baris demi baris:

  1. Baris 3 (try:): blok try/except menangkap kegagalan agar program tetap berjalan dan pesannya tercetak — pola yang kita pakai sejak bab Membaca Error NumPy.
  2. Baris 4 (np.float_(3.14)): NumPy 2.x menolak nama tersebut dan memunculkan AttributeError.
  3. Baris 6 (print("AttributeError:", e)): pesan error yang tercetak langsung menyebut penggantinya, np.float64 — tim pengembang NumPy sengaja menulis pesan yang mengarahkan perbaikan.
  4. 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.