Menu
CoddyTech

Cheat Sheet NumPy

Terakhir diperbarui

Membuat array

Array menyimpan nilai dengan satu tipe dalam grid berdimensi berapa pun.

TugasKode
Mengimpor NumPyimport numpy as np
Dari sebuah listnp.array([1, 2, 3])
2D dari list bersarangnp.array([[1, 2, 3], [4, 5, 6]])
Nol, satu, satu nilai pengisinp.zeros((2, 3)), np.ones(4), np.full((2, 2), 7)
Range dengan langkah (ujung akhir tidak termasuk)np.arange(0, 10, 2) # [0 2 4 6 8]
n titik berjarak sama (ujung akhir termasuk)np.linspace(0, 1, 5) # [0. 0.25 0.5 0.75 1.]
Matriks identitasnp.eye(3)
Bentuk yang sama dengan array lainnp.zeros_like(m), np.ones_like(m)
Memilih tipe elemennp.array([1, 2, 3], dtype=np.float32)
Grid koordinatxx, yy = np.meshgrid(np.arange(3), np.arange(2))

Memeriksa array

TugasKode
Shape: ukuran setiap dimensim.shape # (3, 4)
Jumlah dimensim.ndim # 2
Jumlah elemenm.size # 12
Tipe elemenm.dtype # int64
Mengonversi tipem.astype(np.float64)
Panjang dimensi pertamalen(m) # 3
Kembali menjadi list Pythonm.tolist()
Mencetak dengan lebih sedikit desimalnp.set_printoptions(precision=3, suppress=True)

Indeks dan slice

Slice adalah view: berbagi memori dengan array aslinya. Mask dan list indeks mengembalikan salinan.

TugasKode
Elemen pertama dan terakhira[0], a[-1]
Slice start:stop (stop tidak termasuk)a[1:4] # [20 30 40]
Setiap elemen kedua, dibalika[::2], a[::-1]
Satu elemen dari array 2Dm[1, 2] # 6
Satu baris, satu kolomm[0], m[:, 1]
Satu blok baris dan kolomm[:2, 1:3]
Elemen yang memenuhi kondisia[a > 25] # [30 40 50]
Menggabungkan kondisia[(a > 15) & (a < 45)]
Memilih berdasarkan list posisia[[0, 2, 4]]
Posisi yang cocoknp.flatnonzero(a > 25) # [2 3 4]
Memilih per elemennp.where(a > 25, a, 0)
Menyalin sebelum mengubah slicepart = a[1:3].copy()
Mengisi nilai dengan maska[a > 40] = 0

Matematika dan broadcasting

Operator bekerja per elemen. Broadcasting merentangkan skalar, baris, atau kolom agar sesuai dengan shape array lain.

TugasKode
Aritmetika per elemenx + y, x - y, x * y, x / y, x ** 2
Dengan skalarx * 10
Akar kuadrat, eksponen, lognp.sqrt(x), np.exp(x), np.log(x)
Nilai mutlak, pembulatannp.abs(x - 5), np.round(x / 3, 2)
Membatasi nilai ke sebuah rentangnp.clip(x, 2, 8)
Maksimum per elemennp.maximum(x, 3)
Dot productx @ y # 37.0
Menengahkan setiap kolom (broadcast sebuah baris)m - m.mean(axis=0)
Menskalakan setiap baris (broadcast sebuah kolom)m / m.sum(axis=1, keepdims=True)
Membandingkan float dengan amannp.isclose(0.1 + 0.2, 0.3) # True, np.allclose(x, y)
Trigonometri dan pinp.sin(np.pi / 2) # 1.0

Agregasi sepanjang axis

axis=0 bekerja menurun sepanjang baris dan menghasilkan satu nilai per kolom. axis=1 bekerja melintasi kolom dan menghasilkan satu nilai per baris.

TugasKode
Total semua elemenm.sum() # 21
Satu hasil per kolomm.sum(axis=0) # [5 7 9]
Satu hasil per barism.sum(axis=1) # [ 6 15]
Rata-rata dan simpangan bakum.mean(), m.std(), m.mean(axis=0)
Minimum, maksimumm.min(), m.max(axis=1)
Posisi nilai maksimumm.argmax(), m.argmax(axis=1)
Median dan persentilnp.median(m), np.percentile(m, [25, 50, 75])
Total berjalannp.cumsum(m, axis=1)
Hasil kali semua elemenm.prod() # 720
Any, all, hitung(m > 4).any(), (m > 0).all(), np.count_nonzero(m > 2)

Reshape dan menggabungkan

Reshape mempertahankan elemen dan mengubah shape, jadi ukuran totalnya harus tetap sama.

TugasKode
Shape barua.reshape(2, 3)
Biarkan NumPy menghitung satu ukurana.reshape(3, -1), a.reshape(-1, 1)
Meratakan menjadi 1Dm.ravel(), m.flatten()
Transposem.T
Menambah dimensia[:, np.newaxis], np.expand_dims(a, axis=0)
Membuang dimensi berukuran 1np.squeeze(np.ones((1, 3, 1)))
Menggabungkan sepanjang axis yang sudah adanp.concatenate([a, a])
Menumpuk baris atau kolomnp.vstack([m, m]), np.hstack([m, m])
Array 1D sebagai kolomnp.column_stack([a, a ** 2])
Menumpuk sepanjang axis barunp.stack([a, a], axis=0) # shape (2, 6)
Memecah menjadi beberapa bagiannp.split(a, 3), np.array_split(a, 4)
Mengulang atau menyusun ubin (tile)np.repeat([1, 2], 2) # [1 1 2 2], np.tile([1, 2], 2) # [1 2 1 2]

Sort, cari dan nilai unik

TugasKode
Salinan yang sudah diurutkannp.sort(a)
Terbesar lebih dulunp.sort(a)[::-1]
Posisi hasil pengurutannp.argsort(a)
Tiga nilai terbesarnp.sort(a)[-3:]
Nilai unik beserta jumlahnyavalues, counts = np.unique(a, return_counts=True)
Nama di NumPy 2 (unique_values bisa tidak berurutan)np.unique_values(a), np.unique_counts(a)
Apakah setiap elemen ada di dalam list?np.isin(a, [1, 9])
Posisi sisip di array yang terurutnp.searchsorted([1, 3, 5, 7], 4) # 2
Operasi himpunannp.intersect1d(a, [1, 2, 10]), np.union1d(a, [10]), np.setdiff1d(a, [1])
Mengurutkan baris berdasarkan satu kolomm[m[:, 1].argsort()]

Angka acak

Buat satu Generator dengan seed lalu ambil semua angka darinya, agar hasilnya sama di setiap run.

TugasKode
Generator dengan seedrng = np.random.default_rng(42)
Float dalam [0, 1)rng.random(3)
Bilangan bulat, batas atas tidak termasukrng.integers(1, 7, size=10)
Distribusi normalrng.normal(loc=0, scale=1, size=(2, 3))
Float seragam dalam sebuah rentangrng.uniform(5, 10, size=4)
Memilih dari listrng.choice(["a", "b", "c"], size=5)
Memilih tanpa pengulanganrng.choice(10, size=3, replace=False)
Memilih dengan bobotrng.choice(["H", "T"], size=10, p=[0.7, 0.3])
Salinan yang diacak, mengacak di tempatrng.permutation(a), rng.shuffle(a)
Hitungan binomial dan Poissonrng.binomial(10, 0.5, size=5), rng.poisson(3, size=5)

Aljabar linear

TugasKode
Perkalian matriksA @ A
Menyelesaikan Ax = bnp.linalg.solve(A, b) # [0.8 1.4]
Invers dan determinannp.linalg.inv(A), np.linalg.det(A)
Panjang vektornp.linalg.norm(b)
Eigenvalue dan eigenvectorvalues, vectors = np.linalg.eig(A)
Mencocokkan garis lurusslope, intercept = np.polyfit(x, y, 1)
Outer productnp.outer([1, 2], [3, 4])
Diagonal dan tracenp.diag(A), np.trace(A)

Nilai hilang dan nilai khusus

np.nan menandai float yang hilang. Aritmetika apa pun dengannya menghasilkan nan, jadi pakai fungsi nan atau mask.

TugasKode
Nilai hilangnp.nan
Menemukan nilai yang hilangnp.isnan(v), np.isnan(v).sum()
Membuang nilai yang hilangv[~np.isnan(v)]
Mengganti nilai yang hilang dan tak hingganp.nan_to_num(v, nan=0.0, posinf=0.0)
Pemeriksaan tak hingga dan nilai terhingganp.inf, np.isfinite(v)
Statistik yang melewati NaNnp.nanmean(v[:3]) # 2.0, np.nanmax(v)

Menyimpan dan memuat

TugasKode
Satu array, file binernp.save("data.npy", m), m = np.load("data.npy")
Beberapa array dalam satu filenp.savez("data.npz", x=x, y=y), np.load("data.npz")["x"]
Menulis teks CSVnp.savetxt("data.csv", m, delimiter=",", fmt="%d")
Membaca teks CSVnp.loadtxt("data.csv", delimiter=",")

NumPy 2: nama lama dan yang ditulis sekarang

NumPy 2 menghapus banyak alias, jadi kode yang disalin dari tutorial lama bisa gagal dengan AttributeError.

TugasNumPy 2Bentuk lama
Nilai hilangnp.nannp.NaN
Tak hingganp.infnp.Inf
Tipe float 64 bitnp.float64np.float_
Luas di bawah kurvanp.trapezoid(y, x)np.trapz(y, x)
Apakah setiap elemen ada di array lain?np.isin(a, b)np.in1d(a, b)
Menumpuk barisnp.vstack([a, a])np.row_stack([a, a])
Hasil kalinp.prod(a)np.product(a)
Angka acakrng = np.random.default_rng(0) rng.random(3)np.random.seed(0) np.random.rand(3)

Pemanggilan NumPy yang menjadi dasar kode data science, dikelompokkan per tugas: membuat array, memeriksanya, indeks dan slice, matematika per elemen, agregasi sepanjang axis, reshape dan menggabungkan, mengurutkan dan mencari, mengambil angka acak, dan menyelesaikan aljabar linear. Setiap baris berisi potongan kode singkat yang bisa kamu tempel, plus satu kalimat tentang kegunaannya.

Semua yang ada di sini ditulis untuk NumPy 2, versi yang dijalankan Coddy, dan tabel terakhir mencantumkan nama-nama yang dihapus NumPy 2, di samping apa yang sebaiknya ditulis sekarang. Sebagian besar contoh memakai a = np.array([3, 1, 4, 1, 5, 9, 2, 6]) dan m = np.arange(12).reshape(3, 4). Baru mengenal Python? Mulailah dari cheat sheet Python dan playground Python, dan simpan juga cheat sheet pandas, Matplotlib, dan scikit-learn di samping halaman ini.

FAQ cheat sheet NumPy

Apakah cheat sheet NumPy ini gratis?

Ya. Cheat sheet NumPy ini sepenuhnya gratis, tanpa perlu daftar. Simpan di bookmark, atau cetak ke PDF dari browsermu, dan kembali kapan pun kamu butuh pemanggilan yang tepat untuk reshape, penjumlahan per axis, atau pengambilan angka acak.

Versi NumPy mana yang dibahas cheat sheet ini?
NumPy 2. Setiap potongan kode berjalan di NumPy 2.4, versi yang dijalankan Coddy. NumPy 2 menghapus alias seperti np.NaN, np.float_, np.trapz, dan np.in1d, jadi tabel terakhir menampilkan masing-masing di samping namanya yang sekarang.
Apa arti axis=0 di NumPy?
Axis adalah dimensi yang diringkas. Pada array 2D, axis=0 berjalan menurun sepanjang baris, jadi m.sum(axis=0) mengembalikan satu total per kolom. axis=1 berjalan melintasi kolom dan mengembalikan satu total per baris. Tanpa axis, fungsinya memakai semua elemen.
Apa perbedaan view dan salinan (copy)?
Slice seperti a[1:3] adalah view: berbagi memori dengan a, jadi mengubah slice ikut mengubah a. Mask boolean dan list indeks seperti a[a > 2] atau a[[0, 2]] mengembalikan salinan. Panggil .copy() saat kamu butuh array yang berdiri sendiri.
Kenapa memakai array NumPy alih-alih list Python?
Array menyimpan satu tipe dalam satu blok memori, jadi matematika pada seluruh array berjalan di kode hasil compile dan sering kali jauh lebih cepat daripada perulangan Python. a * 2 menggandakan setiap elemen, sedangkan [1, 2] * 2 mengulang list-nya. pandas dan scikit-learn dibangun di atas array NumPy.
Sebaiknya saya pakai np.random.seed atau default_rng?
Pakai rng = np.random.default_rng(seed) lalu panggil method pada rng, seperti rng.normal() atau rng.integers(). Ini API yang direkomendasikan, dengan aliran angka acak yang lebih baik dan tanpa state global tersembunyi. np.random.seed dan np.random.rand masih berfungsi, tetapi merupakan antarmuka lama.
Bisakah saya menjalankan kode NumPy secara online?
Bisa. Playground Matplotlib gratis menjalankan Python dengan NumPy, pandas, Matplotlib, dan scikit-learn di browsermu, jadi kamu bisa menempel potongan kode apa pun dari cheat sheet ini dan menjalankannya tanpa menginstal apa pun. Kursus Machine Learning dari Coddy mengajarkan NumPy langkah demi langkah sebagai bagian dari bekerja dengan data sungguhan.
Ilustrasi bahasa pemrograman di Coddy

Belajar NumPy bersama Coddy

Mulai