Memahami: Apa itu Numpy pada Python?
Numpy ini sering dipakai di Data Science dan Machine Learning.
Tapi..
Banyak yang belum paham, Numpy ini sebenarnya apaan sih?
Mengapa kita pakai Numpy?
dan gimana cara pakainya?
Mari kita pelajari!
Apa itu Numpy?
NumPy (Numerical Python) adalah library Python yang fokus pada scientific computing. 1
Simpelnya:
Numpy menyediakan fungsi yang siap pakai untuk memudahkan kita melakukan perhitungan saintifik seperti matriks, aljabar, statistik, dan sebagainya.
Mengapa kita butuh Numpy?
Bukannya di Python sudah ada list dan modul math ya? 🤔
Betul, list dan math memang bisa kita pakai buat perhitungan saintifik. Namun masih kurang lengkap, karena beberapa operasi perhitungan harus kita buat secara manual.
Contoh:
Kita ingin menghitung hasil penjumlahan tiap elemen di list.
# kita punya list a dan b
a = [1, 2, 3]
b = [4, 5, 6]
# lalu kita jumlahkan
hasil = a + b
print(hasil) # [1, 2, 3, 4, 5, 6]
Hasilnya tidak sesuai dengan yang kita harapkan. Seharusnya tiap elemen dijumlahkan, tapi malah list-nya digabungkan.
Jika ingin menjumlahkan, maka kita harus membuat rumus atau fungsi secara manual seperti ini:
def add(list_a, list_b):
result = []
for first, second in zip(list_a, list_b):
result.append(first + second)
return result
Karena itu, biar gak repot buat secara manual dari nol.. sebaiknya pakai yang sudah ada dari Numpy.
Selain itu, performa Numpy juga lebih cepat dibandingkan list. Soalnya library Numpy ditulis dengan bahasa C dan sebagaian lagi Python.
Oke.. lalu gimana cara install dan pakai Numpy?
Mari kita lanjut pelajari:
Cara Menginstall Numpy
Numpy dapat kita install dengan package manager pip
.
Jalankan perintah berikut di Terminal atau CMD untuk menginstal Numpy:
pip install numpy
Cukup jalankan perintah ini sekali saja, maka Numpy akan terinstal di komputermu.
Setelah berhasil menginstal, selanjutnya kita pelajari:
Cara Menggunakan Numpy
Numpy harus kita impor dulu agar bisa digunakan di dalam program.
Contoh:
import numpy as np
Pada contoh ini, kita mengimpor numpy
dan menggunakan nama alias np
biar nggak ngetik kepanjangan hehe.
Setelah itu, barulah kita bisa pakai fungsi-fungsi yang ada di np
(Numpy).
Contoh:
Membuat array dengan Numpy
my_array = np.array([1, 2, 3, 4])
Variabel my_array
akan menjadi sebuah object array (ndarray
).
Jangan bingung dengan istilah ndarray
..
..ini artinya n dimension array.
Secara simpel, artinya: array multi dimensi.
Latihan: Membuat Array dengan Numpy
Buatlah file baru bernama array_numpy.py
kemudian isi dengan kode berikut:
import numpy as np
# membuat array
nilai_siswa = np.array([85, 55, 40, 90])
# mengakses data pada array
print(nilai_siswa[3])
Setelah itu, coba jalankan.
Maka hasilnya:
Pada latihan ini, kita bisa tau..
..kalau array di Numpy cara akses datanya sama seperti list.
Membuat Matriks dengan Numpy
Matriks di dalam kode program biasanya dibuat dengan array dua dimensi, ini karena matriks terdiri dari baris dan kolom.
Dimensi pertama berperan sebagai kolom dan dimensi kedua akan berperan sebagai baris.
Contoh:
matriks = [[1,2,3],
[4,5,6],
[7,8,9]]
Pada contoh ini kita membuat list dua dimensi dengan list.
Jika ingin membuat matriks dengan Numpy, maka kita bisa pakai fungsi array()
dan memasukkan
list matriksnya.
Contoh:
matrik_np = np.array([[1,2,3],
[4,5,6],
[7,8,9]])
Cara mengakses datanya juga sama seperti list.
Misal mau ngambil angka 5
, maka kita bisa akses dengan:
print(matrik_np[1][1])
Ini karena angka 5
berada di kolom ke-1 dan baris ke-1.
Ingat, list atau array itu indeksnya selalu dimulai dari nol.
Jika mau ambil angka 3
gimana?
Gampang…
Tunggal tulis seperti ini:
print(matrik_np[0][2])
Ini karena angka 3
berada di kolom ke-0 dan baris ke-2.
Gampang kan?
Saya anggap kamu sudah paham.
Selanjutnya kita akan belajar operasi matriks dengan Numpy.
Operasi Matriks dengan Numpy
Jika kamu menggunakan list di Python untuk operasi matriks, maka kamu akan membuat operasinya secara manual dengan perulangan.
Contohnya seperti ini:
# Program to add two matrices using nested loop
X = [[12,7,3],
[4,5,6],
[7,8,9]]
Y = [[5,8,1],
[6,7,3],
[4,5,9]]
result = [[0,0,0],
[0,0,0],
[0,0,0]]
# iterate through rows
for i in range(len(X)):
# iterate through columns
for j in range(len(X[0])):
result[i][j] = X[i][j] + Y[i][j]
for r in result:
print(r)
Ini tentu merepotkan, karena kita harus membuat sendiri operasinya.
Tapi tenang saja..
..di Numpy kita bisa melakukan operasi matriks dengan mudah, semudah melakukan operasi pada bilangan.
Mari kita coba!
Penjumlahan matriks
Buat file baru dengan nama penjumlahan_matrik.py
kemudian isi dengan kode berikut:
import numpy as np
matrik_a = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
matrik_b = np.array([
[3, 2, 1],
[6, 5, 4],
[9, 8, 7]])
hasil = matrik_a + matrik_b
print(hasil)
Setelah itu, coba jalankan!
Maka hasilnya:
Pengurangan matriks
Buat file baru dengan nama pengurangan_matrik.py
kemudian isi dengan kode berikut:
import numpy as np
matrik_a = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
matrik_b = np.array([
[3, 2, 1],
[6, 5, 4],
[9, 8, 7]])
hasil = matrik_a - matrik_b
print(hasil)
Setelah itu, coba jalankan!
Maka hasilnya:
Perkalian matriks
Buat file baru dengan nama perkalian_matrik.py
kemudian isi dengan kode berikut:
import numpy as np
matrik_a = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
matrik_b = np.array([
[3, 2, 1],
[6, 5, 4],
[9, 8, 7]])
hasil = matrik_a * matrik_b
print(hasil)
Setelah itu, coba jalankan!
Maka hasilnya:
Pembagian matriks
Buat file baru dengan nama pembagian_matrik.py
kemudian isi dengan kode berikut:
import numpy as np
matrik_a = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
matrik_b = np.array([
[3, 2, 1],
[6, 5, 4],
[9, 8, 7]])
hasil = matrik_a / matrik_b
print(hasil)
Setelah itu, coba jalankan!
Maka hasilnya:
Mantap! 👍
Cukup mudah bukan?
Berikutnya kita akan belajar tentang
Transformasi Matriks dengan Numpy
Transformasi matriks artinya mengubah bentuk matriks ke bentuk yang lain.
Ada tiga fungsi yang digunakan untuk transformasi matrik:
transpose()
untuk membalik matriks;reshape()
untuk mengubah bentuk matriks ke ukuran tertentu;flatten()
danravel()
untuk mengubah matriks menjadi list atau vektor.
Mari kita coba!
Latihan: Transpose Matrik dengan Numpy
Buatlah file baru dengan nama balik_matrik.py
, kemudian isi dengan kode berikut:
import numpy as np
# membuat matrik
matrik_a = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
print("Matriks awal: ")
print(matrik_a)
# membalik matrik
hasil = matrik_a.transpose()
print("Matriks kebalikan: ")
print(hasil)
Setelah itu, coba jalankan!
Maka hasilnya:
Selain menggunakan teknik di atas, kita juga bisa membalik matriks seperti ini.
np.transpose(matrik_a)
# atau bisa juga
matrik_a.T # ini akan menghasilkan matriks hasil transpose
Latihan: Mengubah bentuk ukuran Matrik
Buatlah file baru dengan nama matrik_reshape.py
, kemudian isi dengan kode berikut:
import numpy as np
# membuat matrik
matrik_a = np.array([1, 2, 3, 4, 5, 6])
print("Matriks awal: ")
print(matrik_a)
print("Ukuran = ", matrik_a.shape)
# mengubah ukuran ke 3x2
hasil = matrik_a.reshape(3, 2)
print("Mengubah ke 3x2: ")
print(hasil)
print("Ukuran = ", hasil.shape)
Setelah itu, coba jalankan!
Maka hasilnya:
Pada contoh ini, kita mengubah sebuah list menjadi matriks 2x3.
Atribut .shape
berfungsi untuk mengetahui ukuran array.
Matriks yang sudah kita reshape, bisa juga kita kembalikan lagi dengan fungsi reshape()
.
Contoh:
np.reshape(matrik_a, 6)
Angka 6
adalah ukuran matriksnya.
Latihan: Mengubah Matriks ke List Vektor
Buatlah file baru dengan nama matrik_flat.py
, kemudian isi dengan kode berikut:
import numpy as np
# membuat matrik
matrik_a = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
print("Matriks awal: ")
print(matrik_a)
print("Ukuran = ", matrik_a.shape)
hasil = matrik_a.flatten()
print("Matriks setelah di-flatten: ")
print(hasil)
print("Ukuran = ", hasil.shape)
Setelah itu, coba jalankan!
Maka hasilnya:
Sejauh ini kita sudah bisa menggunakan Numpy untuk membuat list dan matrik.
Berikutnya kita akan coba fungsi-fungsi untuk pengolahan data.
Fungsi Pengolahan Data di Numpy
Kalau kamu pernah belajar statistik, mungkin tidak akan asing dengan mean (rata-rata), sum, min, max, dll.
Nah, di Numpy.. kita sudah disediakan fungsi-fungsi ini. Sehingga pengolahan data akan jadi lebih mudah.
Mari kita langsung coba aja contohnya.
Buatlah file baru dengan nama pengolahan_data.py
kemudian isi dengan kode berikut:
import numpy as np
nilai_siswa = np.array([55, 43, 98, 76 ,65 ,77 ,65, 90])
print("Nilai minimal = ", nilai_siswa.min())
print("Nilai maksimal = ", nilai_siswa.max())
print("Nilai rata-rata = ", nilai_siswa.mean())
print("Total nilai = ", nilai_siswa.sum())
print("Standar Deviasi = ", nilai_siswa.std())
Setelah itu coba jalankan!
Maka hasilnya:
Mantap! 👍
Dengan adanya fungsi-fungsi ini, kerjaan Data Science kita akan jadi lebih mudah.
Apa Selanjutnya?
Sejauh ini kita sudah paham dan tahu apa itu Numpy dan gimana cara pakainya.
Sebenarnya masih banyak lagi fungsi-fungsi yang belum kita bahas. Tentu tidak akan cukup jika saya bahas semua di sini.
Karena itu, kamu bisa lanjutkan dengan eksplorasi sendiri.
Coba lakukan ini di Shell Python:
>>> import numpy as np
>>> dir(np) # untuk ngeliat list semua fungsi di Numpy
>>> help(np) # untuk baca dokumentasi dan manual dari Numpy
Selain itu, kamu juga bisa pelajari Numpy dari dokumentasi resminya.
Selamat belajar!