Dokumentasi menjelaskan fungsi, buku merangkai konsep, sedangkan tutorial melatih tangan kita: materi berorientasi tugas yang bisa dijalankan sambil dibaca. Setelah course ini, tutorial yang baik berperan sebagai tempat latihan mandiri — kita mengulang konsep dalam konteks berbeda sampai terasa milik sendiri.
Bab ini memetakan tutorial resmi yang layak dijadikan tujuan berikutnya, lalu membekali kita dengan satu keterampilan yang sama pentingnya: menilai kesegaran (freshness) sebuah tutorial, karena materi di internet terbit pada era NumPy yang berbeda-beda.
Tutorial Resmi numpy.org #
Dua alamat resmi berikut menjadi titik awal terbaik. Portal numpy.org/learn mengumpulkan tautan tutorial terkurasi dari pemula hingga lanjutan, dan NumPy: the absolute basics for beginners adalah tutorial dasar resmi yang membaca seperti ringkasan course ini. Untuk latihan terpandu per topik, quickstart memadukan penjelasan singkat dengan latihan di akhir setiap bagian.
| Sumber | Format | Topik yang diangkat |
|---|---|---|
| Learn portal | Kumpulan tautan tutorial terkurasi | Jalur belajar dari pemula hingga lanjutan |
| absolute basics for beginners | Tutorial panjang satu dokumen | Membuat array, indexing, operasi dasar, random |
| Quickstart | Tutorial bertahap per bagian | ndarray, shape manipulation, copying, latihan |
Tutorial Standar Python yang Relevan #
NumPy berdiri di atas bahasa Python, sehingga beberapa bagian tutorial resmi Python melengkapi fondasi kita:
- Data structures (list, tuple, dict) — bahan mentah yang sering dikonversi menjadi array seperti pada bab Array dari Python List.
- Modul
math— fungsi matematika untuk satu angka; pembanding yang tepat untuk ufunc yang bekerja per elemen array. - Modul
random— pembangkit acak Python; halaman resminya sendiri menyarankan modul berbasis NumPy untuk kebutuhan array.
Bab NumPy vs Python List sudah mengurai perbedaan karakter keduanya; tutorial resmi Python melengkapi sisi yang tidak disentuh NumPy.
Menilai Kesegaran Tutorial #
Tutorial konsep jarang basi, tetapi detail API-nya bisa bergeser seiring versi. Empat langkah cepat untuk menilai sebuah tutorial:
- Cek versi yang dipakai tutorial. Materi yang baik menyebut versi NumPy-nya; bandingkan dengan
np.__version__milik kita. - Waspadai pola pra-2.x. Nama seperti
np.float_,np.NaN,np.in1d,np.row_stack, dan API acak lamanp.random.seedadalah penanda usia — pengganti modernnyanp.float64,np.nan,np.isin,np.vstack, dandefault_rng(lihat bab default_rng dan Generator). - Perhatikan tanggal terbit dan revisi. Konsep dari artikel lama tetap valid, tetapi contoh kodenya perlu disesuaikan.
- Uji ulang kodenya sendiri. Tutorial yang baik menampilkan output yang bisa kita reproduksi; blok yang gagal jalan adalah sinyal versi, bukan sinyal salah konsep.
Blok berikut memeriksa status nama-nama tersebut pada versi terpasang — celah kecil untuk menyaring usia sebuah tutorial:
import numpy as np
print("Versi terpasang:", np.__version__)
for nama in ("float_", "NaN", "in1d", "row_stack", "isin", "trapezoid"):
print(f"np.{nama:<10}", hasattr(np, nama))Output yang Dihasilkan:
Versi terpasang: 2.1.3
np.float_ False
np.NaN False
np.in1d True
np.row_stack True
np.isin True
np.trapezoid TrueHasilnya membagi nama lama menjadi dua kelompok. np.float_ dan np.NaN sudah dihapus sehingga kode yang memakainya langsung gagal. Sebaliknya np.in1d dan np.row_stack masih tersedia namun deprecated — kode tetap berjalan, tetapi sebaiknya diganti. Perbedaan itu penting: tutorial usang yang gagal keras mudah terdeteksi, sedangkan tutorial usang yang masih berjalan bisa lewat tanpa kita sadari.
Nama deprecated berperilaku seperti ini:
import numpy as np
import warnings
y = np.array([0.0, 2.0, 4.0, 6.0])
with warnings.catch_warnings(record=True) as terekam:
warnings.simplefilter("always")
print(np.trapz(y, dx=1.0))
print("Kategori:", terekam[0].category.__name__)
print("Pesan :", str(terekam[0].message))
print("Nama baru:", np.trapezoid(y, dx=1.0))Output yang Dihasilkan:
9.0
Kategori: DeprecationWarning
Pesan : `trapz` is deprecated. Use `trapezoid` instead, or one of the numerical integration functions in `scipy.integrate`.
Nama baru: 9.0Mari kita bedah baris demi baris:
- Baris 6-8 (
with warnings.catch_warnings(...)): alatwarningsdari pustaka standar mengaktifkan perekaman peringatan ke listtererekamalih-alih membiarkannya lewat diam-diam. - Baris 9 (
np.trapz(y, dx=1.0)): fungsi lama tetap menghitung hasilnya (9.0) sekaligus memancarkanDeprecationWarning. - Baris 10-11: kategori dan isi peringatan dicetak — pesan dari tim pengembang NumPy menunjuk langsung ke
np.trapezoid. - Baris 12 (
np.trapezoid(...)): nama baru menghasilkan angka yang persis sama; migrasinya hanya pindah nama.
Artikel dan Sumber Komunitas #
Artikel blog praktisi, kanal video, dan forum tanya-jawab melimpah dan sering memberi wawasan yang tidak dimiliki dokumen resmi — misalnya catatan perjalanan migrasi NumPy 2.0 atau studi kasus optimasi. Karena itu kita tidak menautkannya di sini: materi komunitas mudah kedaluwarsa dan tautannya cepat berubah. Dua kebiasaan membuat kita tetap aman memakainya: selalu cocokkan versi NumPy yang dipakai penulis, dan jalankan ulang setiap blok kode di interpreter sendiri sebelum menganggapnya benar.
Untuk pertanyaan spesifik, kekuatan terbesar tetap pada kombinasi yang sudah kita rangkai sepanjang course ini: docstring di interpreter, API reference di situs resmi, dan release notes saat versi berubah.