status
Published
type
Post
date
Apr 19, 2026 02:59 PM
tags
manajemen
data
category
post
password
icon
📌 Topik Hari Ini
Konsep Dasar: kenapa belajar Numpy?
Sebelumnya kita sudah belajar mengenai
list di Python, kan?Contoh:
Itu adalah list biasa yang akan mengembalikan variabel data (tempat penyimpanan) menjadi
[1, 2, 3, 4].Tapi kalau mau:
- menjumlahkan semua isi
list
- mengalikan seluruh isinya dengan angka
- bekerja dengan data dalam jumlah besar
maka
list mulai terasa lelet dan tidak fleksibel untuk digunakan.
Maka, di sinilah NumPy muncul.
- Apa itu Numpy dan Array?
- NumPy (singkatan dari Numerical Python) adalah pustaka (library) Python yang digunakan untuk:
- Membuat array (struktur data seperti
listtapi lebih cepat dan efisien untuk angka) - Melakukan perhitungan matematika, statistik, dan operasi vektor/matriks
- Digunakan sebagai dasar untuk pustaka data lainnya seperti Pandas, Scikit-learn, TensorFlow
NumPy sangat berguna dalam pengolahan data dan machine learning karena kecepatannya dalam bekerja dengan angka dalam jumlah besar.
Arraysendiri adalah wadah sepertilist, tapi lebih teratur, lebih cepat, dan khusus untuk angka dan notasi ilmiah dalam python.
Analoginya, bayangkan saja
array itu seperti kotak telur:Kalaulistitu seperti tas kresek (acak isinya: ada telur, roti, minuman), makaarrayseperti karton isi telur 6 biji yang teratur, satu jenis, gampang ditumpuk dan diproses cepat.
- Instalasi Numpy
Jika memakai Google Colab, NumPy sudah tersedia otomatis. Tapi kalau offline, dapat melakukan instalasi pada terminal atau cmd:
pip adalah alat untuk menginstal pustaka python, kemudian import library-nya untuk mulai menggunakan:
Penggunaan Numpy
Membuat array dapat dilakukan dengan beberapa cara, sepert:
- Array 1 Dimensi itu Seperti Barisan
Untuk pembuktian efektivitas Numpy di bandingin menggunakan list biasa, perhatikan syntax berikut:
Output:
[10 20 30]Ini adalah array 1 dimensi → seperti satu baris angka. Bisa dibayangkan seperti: 10 → 20 → 30
Kenapa array ini harus digunakan? Tentu saja karena dapat langsung melakukan operasi matematika terhadap array tersebut. Contohnya saja
angka + 5 akan menghasilkan [15 25 35]. Hal ini tentunya lebih efisien dibandingkan menggunakan perulangan for pada list biasa. Tapi array cukup satu baris dan semua elemen langsung ditambahkan 5!
- 2 Dimensi itu Seperti Tabel atau Matriks— memiliki bentuk, yakni seperti baris dan kolom
Output:
Analoginya:
Bayangkan seperti tabel atau Excel, 2 baris × 2 kolom. Inilah yang disebut dengan array 2 dimensi.
Kemudian, dari array 2 dimensi ini sifat-sifat array akan menjadi lebih jelas perbedaannya dibandingkan dengan menggunakan array 1 dimensi sebagai model pembelajaran. Sifat-sifat ini dikenal juga sebagai properties array numpy.
- Sifat/atribut suatu array
shape: Array ini berbentuk tabel 2x3 → 2 baris dan 3 kolom.ndim: Array ini punya 2 dimensi → baris dan kolom. Kalau hanya baris saja (array 1D), hasilnya 1.size: Ada 6 angka/elemen total di dalam array itu → 2 baris × 3 kolom = 6dtype: Semua isi array ini bertipe integer 64-bit. Bisa jugafloat64kalau isinya ada angka desimal.itemsize: Setiap angka di dalam array ini butuh 8 byte memori.int64danfloat64→ 8 byteint32→ 4 bytenbytes: Total memori yang dipakai array → 6 elemen × 8 byte = 48 bytetranspose: Menggunakan baris sebagai kolom dan/atau sebaliknya.
Sifat (Atribut) | Penjelasan Singkat |
.shape | Bentuk (baris, kolom) |
.ndim | Jumlah dimensi array (1D, 2D, 3D, dst.) |
.size | Jumlah total elemen |
.dtype | Tipe data elemen |
.itemsize | Ukuran satu elemen (dalam byte) |
.nbytes | Total memori array ( size × itemsize) |
.T | Transpose (baris ↔ kolom) |
Untuk lebih jelasnya, saya akan memperlihatkannya secara langsung.
jika syntax di atas dijalankan, hasilnya akan seperti ini:
arr sendiri akan menghasilkan array:Yang jika dijabarkan akan menjadi seperti ini:
Biasanya:
Operasi pada Numpy Array
- Arithmetic Operations (paling sering dipakai)
Adalah operasi matematika dasar yang dilakukan per-element (element wise) pada array.
Jenis-jenisnya:
Operator | Keterangan | Function | Contoh Input | Output |
+ | Pertambahan | np.add() | [1,2] + [3,4] | [4,6] |
- | Pengurangan | np.subtract() | [5,3] - [1,2] | [4,1] |
* | Perkalian | np.multiply() | [2,3] * [4,5] | [8,15] |
/ | Pembagian | np.divide() | [10,8] / [2,4] | [5,2] |
** | Pangkat | np.power() | [3,2] ** [2,3] | [9,8] |
% | Modulus (Sisa hasil bagi) | np.mod() | [7,10] % [3,4] | [1,2] |
Sekilas, terlihat mirip dengan operasi aritmatika di day 1. Namun perbedaannya bukan pada simbol/syntax-nya, melainkan pada skala eksekusi dan tipe data yang diolah, seperti yang telah dijelaskan sebelumnya (harus menggunakan loop).
Terlihat membingungkan? Saya akan mencobanya secara langsung. Pertama-tama saya membagi array sebelumnya menjadi 2 variabel atau array yang berbeda.
Dua array tersebut, yakni
a dan b akan menghasilkan array 1 dimensi yang masing-masing memiliki bentuk 1 baris dan 3 kolom. Dari keduanya, saya menerapkan operasi aritmatika.Yang menghasilkan output:
Dari
a dan b juga dapat dilakukan dengan menggunakan fungsi bawaan Numpy. Seperti np.add() atau sejenisnya:Dan hasilnya akan tetap sama:
Selain itu, pada penerapan operasi aritmatika dalam Numpy juga terdapat konsep atau fitur yang menawarkan perhitungan matematika yang lebih mudah. Sebut saja seperti broadcasting dan sebagainya.
- Broadcasting: operasi aritmatika dengan skalar (angka tunggal)
- Skalar = 1 kotak pizza
- Array = [Teman1, Teman2, Teman3]
- Operasi = "Berikan 1 potong pizza ke setiap teman"
- Nilai skalar
1pizza disiarkan agar sesuai dengan arraytemanyang memiiki 1 dimensi. - Hasilnya, elemen baru dibuat skalar ditambahkan ke setiap elemen
temanyang menciptakan elemen baru di mana setiaptemandi tambahkan sebesar1nilai. - Jika dua array memiliki jumlah dimensi berbeda, array dengan dimensi lebih kecil akan ditambahkan dimensi "1" di depannya sampai dimensinya sama.
- Expand Dimensions: B (3,) → (1,3)
- Broadcast Rules:
- Axis 0: 3 vs 1 → expand B ke 3
- Axis 1: 1 vs 3 → expand A ke 3
- Result Shape: (3,3)
shape(int atau sequence dari int). Pada contoh ini, array yang diminta berdimensi 3, sehingga kode yang diambil adalah(depth, rows, columns).dtypeyang ingin dinyatakanorderyang menyatakan urutan- Langkah 1: Menyamakan ukuran kemasan
- Kotak A punya 3 dimensi (2 laci, 3 rak, 4 kotak)
- Stiker B hanya 2 dimensi (3 baris 1 kolom)
- Kita tambahkan 1 dimensi kosong di depan B, sehingga menjadi (1, 3, 1) → yakni 1 laci.
- Langkah 2: Proses penempatan stiker
- Untuk dimensi rak (3 vs 3):
- Ukuran sama (3 rak), jadi stiker pas tepat
- Tidak perlu penyesuaian
- Untuk dimensi laci (2 vs 1):
- Stiker hanya punya 1 laci, tapi kotak punya 2
- Solusi: duplikasi stiker untuk laci kedua
- Hasilnya stiker sekarang berukuran (2, 3, 1) dari (1, 3, 1).
- Untuk dimensi kotak kecil (4 vs 1):
- Stiker hanya cover 1 kotak, tapi ada 4 kotak
- Solusi: perlebar stiker ke 4 kotak
- Hasil: stiker sekarang (2, 3, 4)
- Shape output adalah keluasan maksimal setiap dimensi dari input.
- Langkah 1: Menyamakan Jumlah Dimensi
- A: (5, 1, 3) → sudah 3 dimensi
- B: (4, 3) → ditambah 1 dimensi di depan → (1, 4, 3)
- Langkah 2: Membandingkan Dimensi Satu per Satu (dari kanan ke kiri)
- Dimensi ke-2 (kolom):
- A: 3
- B: 3 → Cocok! Tidak perlu broadcasting
- Dimensi ke-1 (baris):
- A: 1
- B: 4 → A akan di-broadcast menjadi 4 (diulang 4 kali)
- Dimensi ke-0 (lapisan):
- A: 5
- B: 1 → B akan di-broadcast menjadi 5 (diulang 5 kali)
- Shape Hasil Akhir:
- Ambil nilai maksimum dari setiap dimensi:
- Dimensi 0: max(5, 1) = 5
- Dimensi 1: max(1, 4) = 4
- Dimensi 2: max(3, 3) = 3 → Jadi shape akhir: (5, 4, 3)
Adalah suatu cara dalam Numpy yang memungkinkan kita untuk melakukan operasi aritmatika pada array dengan bentuk yang berbeda tanpa harus membentuknya ulang (menghindari pemakaian loop atau memperbesar ukuran array secara manual).
Analoginya seperti ini:
Bayangkan Anda punya 1 kotak pizza (skalar) dan 3 teman (array). Bagaimana membagi pizza secara adil? Inilah konsep broadcasting!
Dengan menggunakan pengandaian seperti itu, kita dapat memecahnya menjadi kotak-kotak kecil:
Di Numpy:
Bagaimana? Cara kerja broadcasting adalah dengan menyesuaikan array yang lebih kecil agar sesuai dengan bentuk array yang lebih besar dengan mereplikasi/menyebarkan (broadcast) nilainya (skalar) di sepanjang dimensi (array) yang diperlukan.
Dalam hal ini:
Pada titik ini, konsep dan cara pengerjaannya hampir terlihat mirip dengan perkalian pada matriks. Namun keduanya pada dasarnya berbeda. Sehingga ada aturan tertentu dalam penggunaan broadcasting:
Dimensi array harus compatible
Contoh:
Output:
Ukuran setiap dimensi harus sama atau salah satunya = 1
Contoh Valid:
Output:
(3,) adalah bentuk (shape) dari array 1D (vekto) dengan 3 elemen. Di mana dalam NumPy, bentuk array selalu ditulis dengan dimensi yang ada dan sengaja dibuat sebagai array 1D ((3,)) untuk menunjukkan bagaimana NumPy melakukan broadcasting antara array 1D dan 2D. Walaupun jika ingin menyatakan ke daam 2D, dengan 1 baris dan 3 kolom, (1, 3), prosesnya tetap mirip,Q: Mengapa NumPy membiarkan
(3,) di-broadcast dengan (3, 1) (menjadi bentuk 2D)?A: Untuk memudahkan operasi antara vektor dan matriks tanpa harus selalu mengubah bentuk array.
Visualisasi proses:
Aturan yang Terjadi:
Contoh Error:
Selalu di mulai dari kanan → kiri
Contohnya, kita akan membuat 2 array dengan dimensi yang berbeda:
Kedua array tersebut dibuat menggunakan
numpy.ones() yang fungsinya mengembalikan array baru dengan angka 1 yang memiliki bentuk dan tipe tertentu.Syntax :
numpy.ones(shape, dtype = None, order = 'C').Dengan parameternya:
Ngomong-ngomong, kedua array akan membentuk seperti ini:
Sehingga ketika perintah
print((A + B).shape) dijalankan, hasilnya akan mencetak (2, 3, 4).Dengan analogi:
A adalah kotak besar berisi 2 laci, yang masing-masing memiliki 3 rak dan tiap raknya mempunyai 4 kotak kecil. Sedangkan B adalah stiker dengan 3 baris dan 1 kolom.
Jika dirincikan, prosesnya kurang lebih menjadi seperti ini:
Dan inilah A dan B setelah di broadcast:
Atau bisa dicek menggunakan
numpy.broadcast_arrays() untuk melihat hasil dari broadcasting. Dan ini adalah hasil dari A + B:Hasil Operasi Memiliki Shape Maksimal dari Setiap Dimensi
Contoh:
Pada contoh tersebut, shape output
(5, 3, 4) lebih besar dibandingkan dengan kedua inputan (5, 1, 3) dan (4, 3) → (1, 4, 3).Sekarang saya akan menunjukkan proses broadcastnya:
- Matematika functions
- Kategori Fungsi Matematika
- Fungsi Dasar
- Trigonometri
- Pembulatan
- Vectorization: Proses seluruh array sekaligus
- Loop C-level: Lebih cepat daripada Python loop
- SIMD Instructions: Menggunakan instruksi processor khusus
- Normalisasi Data
- Transformasi Feature
- Engineering Fisika
Cara Kerja Internal
NumPy mengoptimalkan operasi dengan:
Contoh benchmark:
Aplikasi Nyata
Untuk informasi lebih lanjut mengenai operator fungsi matematika di Numpy Array, saya sarankan untuk membaca dokumentasi resminya. Atau Anda dapat memeriksanya di Geeksforgeeks, tempat saya belajar.
- Comparison and Logical Operations
- Comparison operator
- Logical operators
a > 3:3 > 3menghasilkanFalse5 > 3menghasilkanTrue7 > 3menghasilkanTruea < 7:3 < 7menghasilkanTrue5 < 7menghasilkanTrue7 < 7menghasilkanFalse- Mendapatkan list boolean
True AND TruemenghasilkanTrueFalse AND TruemenghasilkanFalseTrue AND FalsemenghasilkanFalsea < 4:3 < 4menghasilkanTrue5 < 4menghasilkanFalse7 < 4menghasilkanFalsea > 6: Operasi perbandingan ini juga dilakukan pada setiap elemen di array a.3 > 6menghasilkanFalse5 > 6menghasilkanFalse7 > 6menghasilkanTrue- Mendapatkan list boolean
True OR FalsemenghasilkanTrueFalse OR FalsemenghasilkanFalseFalse OR TruemenghasilkanTruea == 5:3 == 5menghasilkanFalse5 == 5menghasilkanTrue7 == 5menghasilkanFalse- Mendapatkan list boolean
NOT FalsemenghasilkanTrueNOT TruemenghasilkanFalseNOT FalsemenghasilkanTrue- Jangan tertukar operator:
- Urutan operasi:
bitwise_and()or&bitwise_or()or|bitwise_xor()or^left_shift()or<<right_shift()or>>
Sama seperti pada hari pertama, operator perbandingan mengembalikan nilai/array boolean dalam bentuk yang sama. Sehingga operator yang digunakan adalah:
Contoh:
Juga seperti operator perbandingan, Logical operators pada Numpy Array memiliki kesamaan dengan python di hari pertama. Letak perbedaannya adalah penggunaan tanda (operator) yang akan digunakan dan pemakaiannya yang haram.
Haram? Apakah Anda penasaran mengapa?
Ya, mari kita pelajari ini bersama!
Seperti yang telah diketahui, operator logika digunakan untuk menggabungkan kondisi— dua atau mungkin lebih. Di mana pada python terdapat 3 operator logika yakni
and, or dan not.Tapi dalam Numpy juga sama, terdapat 3 operator logika yang dapat digunakan, yakni:
Fungsi Numpy | Arti | Contoh |
np.logical_and() | Kedua kondisi harus True | np.logical_and(a > 3, a < 7) |
np.logical_or() | Salah satu kondisi cukup True | np.logical_or(a < 4, a > 6) |
np.logical_not() | Membalik kondisi | np.logical_not(a > 5) |
Sebagai contoh:
Syntax di atas adalah contoh penggunaan operator logika pada Numpy. Jika diperjelas, masing-masing perintah
print() ingin menampilkan operasi (wise element ) terhadap semua elemen di aray a. Sebagai referensi, saya juga melampirkan tabel kebenaran.
Karena itu, kita akan memecah syntax-nya menjadi bagian-bagian kecil.
Menghasilkan array boolean sementara:
[False True True].Menghasilkan array boolean sementara:
[True True False].Fungsi
logical_and kemudian mengambil kedua array boolean sementara ini dan melakukan operasi AND :Output:
[False True False].Menghasilkan array boolean sementara:
[True False False].Menghasilkan boolean sementara:
[False False True].Output:
[True False True].Menghasilkan array boolean sementara:
[False True False].Output:
[True False True]Selain itu terdapat beberapa hal yang harus diperhatikan dalam penulisan operator binary dalam Numpy Array:
⚠️ Peringatan Penting!
Sudah mendapatkannya? Yaps, itulah yang haram.
Selanjutnya, logical operations juga dapat digunakan menggunakan fungsi-fungsi seperti di bawah ini:
Namun sayangnya akan dijelaskan secara terpisah → [klik di sini].
- String Operations (menggunakan modul khusus
numpy.char) NumPy didesain untuk komputasi numerik, sehingga operasi string ditempatkan di sub-modul khusus: - Fungsi String Dasar yang Paling Sering Dipakai
- Konversi Case
- Operasi Pencarian
- Manipulasi String
- Contoh Aplikasi Nyata
- Case 1: Membersihkan Data Teks
- Case 2: Ekstrak Substring
- Fungsi Lanjutan untuk NLP Dasar
- Perbandingan dengan Python Standar
- Operasi vektorisasi (lebih cepat untuk array besar)
- Integrasi dengan array multidimensi
- Keterbatasan
- Tidak mendukung operasi teks kompleks seperti:
- Regex advance
- Stemming/Lemmatization
- Untuk NLP berat, lebih baik gunakan library khusus seperti:
- Tips Penting
- Konversi ke String: Pastikan array bertipe string:
- Gabung dengan Operasi Lain:
- Performance: Untuk array kecil, operasi Python native bisa lebih cepat:
Operasi | Python Native | NumPy ( np.char) |
Upper Case | "text".upper() | np.char.upper(arr) |
Split | "text".split() | np.char.split(arr) |
Replace | "text".replace() | np.char.replace(arr) |
Keunggulan NumPy:
Contoh Integrasi: Preprocessing Data Teks
Index dan Slicing
Indexing dan slicing adalah cara untuk mengakses dan memodifikasi elemen array NumPy.
- Basic Indexing (Akses Elemen Tunggal)
- Slicing (Akses Sub-Array)
Visualisasi Slicing:
- Multi-Dimensional Arrays
- Kombinasi Indexing & Slicing
- Slicing dengan Step
- Aturan Penting
- Start inklusif, stop eksklusif
- Default value:
start= 0stop= panjang arraystep= 1- Indeks negatif:
- Contoh Praktis
Tips: Gunakan
: tanpa angka untuk mengambil seluruh axis:📘 Ringkasan
Cheetsheet Numpy Array
🔧 Tools Digunakan
- Python
- Google Colab
📈 Progress
- Durasi: Sebenarnya lebih dari sehari
- Kode atau Proyek Mini:
📎 Resource
🗣️ Refleksi
- Mengapa Numpy begitu membingungkan? Karena itulah belajar.



