Pengenalan NumPy
![]()
NumPy merupakan singkatan dari Numerical Python, yaitu library Python yang dirancang untuk melakukan komputasi numerik secara efisien.
NumPy menjadi salah satu fondasi penting dalam ekosistem:
- Data Science
- Machine Learning
- Artificial Intelligence
- Scientific Computing
- Analisis data numerik
Ketika bekerja dengan data dalam jumlah besar, kita sering perlu melakukan berbagai operasi matematika terhadap banyak nilai sekaligus.
NumPy menyediakan struktur data dan operasi yang dirancang khusus untuk kebutuhan tersebut.
Mengapa Perlu Belajar NumPy?
Machine Learning pada dasarnya bekerja dengan data yang dapat direpresentasikan secara numerik.
Misalnya, sebuah dataset kendaraan dapat memiliki informasi:
Make → Toyota
Colour → White
Odometer → 150000
Price → 25000
Tidak semua informasi tersebut langsung berbentuk angka.
Sebelum digunakan oleh algoritma Machine Learning, data biasanya perlu diproses dan direpresentasikan dalam bentuk yang dapat dipahami oleh model.
NumPy menyediakan struktur data berupa array numerik yang sangat penting dalam proses tersebut.
Secara sederhana:
Data
↓
Representasi numerik
↓
NumPy Array
↓
Pemrosesan data
↓
Machine Learning Model
Karena alasan tersebut, memahami NumPy akan membantu kita memahami bagaimana data numerik diproses sebelum digunakan dalam Machine Learning.
Peran NumPy dalam Data Science
NumPy bukan library Machine Learning.
NumPy lebih tepat dianggap sebagai fondasi komputasi numerik yang digunakan oleh banyak library lainnya.
Dalam ekosistem Python, kita dapat menemukan hubungan seperti:
NumPy
↓
Pandas
↓
Data Analysis
↓
Scikit-Learn
↓
Machine Learning
Hubungan tersebut tidak berarti semua library hanya bergantung pada NumPy secara langsung dalam setiap operasinya, tetapi NumPy merupakan salah satu fondasi penting dalam ekosistem komputasi data Python.
Peran NumPy dalam Machine Learning
Dalam Machine Learning, kita akan sering bekerja dengan:
- angka,
- matriks,
- vektor,
- data berdimensi banyak,
- operasi matematika,
- transformasi data.
NumPy menyediakan berbagai kemampuan untuk bekerja dengan data tersebut.
Contohnya, sebuah dataset dapat direpresentasikan sebagai array:
[
[10, 20, 30],
[40, 50, 60],
[70, 80, 90]
]
Struktur seperti ini dapat digunakan untuk merepresentasikan data dalam bentuk numerik.
Model Machine Learning kemudian dapat memproses data tersebut untuk menemukan pola.
Secara sederhana:
Data
↓
NumPy Array
↓
Operasi numerik
↓
Machine Learning
↓
Prediksi
Keunggulan NumPy
Salah satu alasan NumPy banyak digunakan adalah karena NumPy dirancang untuk melakukan operasi numerik dengan efisien.
Kecepatan Komputasi
Python merupakan bahasa yang sangat fleksibel dan mudah digunakan, tetapi operasi numerik dalam jumlah sangat besar dapat menjadi kurang efisien jika dilakukan menggunakan Python murni dan loop satu per satu.
NumPy menyediakan implementasi operasi numerik yang dioptimalkan, dengan banyak bagian inti library yang ditulis menggunakan bahasa pemrograman seperti C.
Akibatnya, kita dapat menulis kode Python yang relatif sederhana tetapi tetap memperoleh performa tinggi untuk banyak operasi numerik.
Vektorisasi
Salah satu konsep penting dalam NumPy adalah vectorization.
Tanpa NumPy, kita mungkin melakukan operasi terhadap setiap nilai menggunakan loop.
Contohnya secara konsep:
10 + 5
20 + 5
30 + 5
40 + 5
Dengan pendekatan NumPy, operasi dapat diterapkan langsung terhadap seluruh array.
Secara konsep:
[10, 20, 30, 40]
+
5
↓
[15, 25, 35, 45]
Pendekatan seperti ini membuat kode menjadi lebih ringkas dan dapat memberikan performa yang baik untuk operasi numerik dalam jumlah besar.
Broadcasting
NumPy juga memiliki konsep broadcasting.
Broadcasting memungkinkan operasi dilakukan antara array dengan bentuk tertentu dan nilai atau array lain tanpa harus menulis loop secara manual.
Contoh sederhana:
[10, 20, 30, 40]
+
5
↓
[15, 25, 35, 45]
Nilai 5 secara konseptual diterapkan ke setiap elemen array.
Broadcasting merupakan salah satu kemampuan penting yang akan dipelajari lebih lanjut ketika mulai bekerja dengan array.
Struktur Data Utama: ndarray
Struktur data utama yang disediakan NumPy adalah ndarray atau N-dimensional array.
Array ini dapat memiliki berbagai dimensi.
Array 1 Dimensi
Contohnya:
[10, 20, 30, 40]
Struktur ini dapat dianggap sebagai kumpulan angka dalam satu dimensi.
Array 2 Dimensi
Contohnya:
[
[10, 20, 30],
[40, 50, 60]
]
Struktur ini menyerupai tabel dengan baris dan kolom.
Array Multidimensi
NumPy juga dapat digunakan untuk data dengan dimensi yang lebih tinggi.
Contohnya:
[
[
[1, 2],
[3, 4]
],
[
[5, 6],
[7, 8]
]
]
Array multidimensi banyak digunakan dalam berbagai bidang seperti:
- Machine Learning
- Deep Learning
- Computer Vision
- Scientific Computing
NumPy dan Pandas
NumPy dan Pandas memiliki hubungan yang sangat dekat dalam ekosistem Data Science.
Secara sederhana:
| Library | Fokus Utama |
|---|---|
| NumPy | Komputasi numerik dan array |
| Pandas | Manipulasi dan analisis data berbentuk tabel |
| Matplotlib | Visualisasi data |
| Scikit-Learn | Machine Learning |
Pandas sangat sering digunakan untuk mengolah dataset berbentuk tabel, sedangkan NumPy sangat kuat untuk operasi numerik dan array.
Contoh workflow:
Data mentah
↓
Pandas
↓
Membersihkan dan memahami data
↓
NumPy
↓
Operasi numerik
↓
Scikit-Learn
↓
Machine Learning
Dalam praktiknya, library-library tersebut dapat digunakan bersama dalam satu workflow.
Apa yang Akan Dipelajari di NumPy?
Setelah memahami pengenalan ini, kita akan mempelajari NumPy secara bertahap.
Beberapa topik utama yang akan dibahas antara lain:
1. Membuat NumPy Array
Kita akan belajar membuat array dari berbagai sumber data.
Contohnya:
import numpy as np
a = np.array([1, 2, 3, 4])
2. Memahami Atribut Array
Kita akan mempelajari informasi mengenai array seperti:
- dimensi,
- bentuk,
- ukuran,
- tipe data.
3. Memilih dan Mengubah Data
Kita akan belajar mengambil elemen tertentu dan melakukan manipulasi terhadap array.
4. Operasi Matematika
NumPy menyediakan berbagai operasi numerik seperti:
- penjumlahan,
- pengurangan,
- perkalian,
- pembagian,
- statistik dasar,
- dan operasi matematika lainnya.
5. Membandingkan Array
Array dapat dibandingkan menggunakan berbagai operator untuk menghasilkan kondisi Boolean.