author Ahmad Muhardian

Memahami: Apa itu Numpy pada Python?


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 beranam 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:

Contoh list dengan Numpy

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 matrik terdiri dari baris dan kolom.

Anatomi Matriks

Dimensi pertama berperan sebagai kolom dan dimensi kedua akan berperan seabgai 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 memasukan 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 matrik dengan mudah, semudah melakan operasi pada bilangan.

Mari kita coba!

Penjumlahan matriks

Buat file baru dengan nama penjumlahan_matrik.py kemudian isi dengan kode berikut:

penjumlahan_matrik.py
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:

Opearsi penjumlahan matrik di python

Pengurangan matriks

Buat file baru dengan nama pengurangan_matrik.py kemudian isi dengan kode berikut:

pengurangan_matrik.py
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:

Opearsi pengurangan matrik di python

Perkalian matriks

Buat file baru dengan nama perkalian_matrik.py kemudian isi dengan kode berikut:

perkalian_matrik.py
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:

Opearsi perkalian matrik di Python

Pembagian matriks

Buat file baru dengan nama pembagian_matrik.py kemudian isi dengan kode berikut:

pembagian_matrik.py
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:

Opearsi pembagian matrik di Python

Mantap! 👍

Cukup mudah bukan?

Berikutnya kita akan belajar tentang

Transformasi Matriks dengan Numpy

Transformasi Matrik artinya mengubah bentuk matrik ke bentuk yang lain.

Ada tiga fungsi yang digunakan untuk transformasi matrik:

  • transpose() untuk membalik matrik;
  • reshape() untuk mengubah bentuk matrik ke ukuran tertentu;
  • flatten() dan ravel() untuk mengubah matrik 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:

balik_matrik.py
import numpy as np

# membuat matrik
matrik_a = np.array([
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]])

print("Matrik awal: ")
print(matrik_a)

# membalik matrik
hasil = matrik_a.transpose()

print("Matrik kebalikan: ")
print(hasil)

Setelah itu, coba jalankan!

Maka hasilnya:

Transpose matrik di Numpy

Selain menggunakan teknik di atas, kita juga bisa membalik matrik seperti ini.

np.transpose(matrik_a)

# atau bisa juga

matrik_a.T # ini akan menghasilkan matrik hasil transpose

Latihan: Mengubah bentuk ukuran Matrik

Buatlah file baru dengan nama matrik_reshape.py, kemudian isi dengan kode berikut:

matrik_reshape.py
import numpy as np

# membuat matrik
matrik_a = np.array([1, 2, 3, 4, 5, 6])

print("Matrik awal: ")
print(matrik_a)
print("Ukuran = ", matrik_a.shape)

# mengubah ukran ke 3x2
hasil = matrik_a.reshape(3, 2)

print("Mengubah ke 3x2: ")
print(hasil)
print("Ukuran = ", hasil.shape)

Setelah itu, coba jalankan!

Maka hasilnya:

Reshape matrik dengan Numpy

Pada contoh ini, kita mengubah sebuah list menjadi matrik 2x3. Atribut .shape berfungsi untuk mengetahui ukuran array.

Matrik yang sudah kita reshape, bisa juga kita kembalikan lagi dengan fungsi reshape().

Contoh:

np.reshape(matrik_a, 6)

Angka 6 adalah ukuran matriknya.

Latihan: Mengubah Matrik ke List Vektor

Buatlah file baru dengan nama matrik_flat.py, kemudian isi dengan kode berikut:

matrik_flat.py
import numpy as np

# membuat matrik
matrik_a = np.array([
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]])

print("Matrik awal: ")
print(matrik_a)
print("Ukuran = ", matrik_a.shape)

hasil = matrik_a.flatten()

print("Matrik setelah di-flatten: ")
print(hasil)
print("Ukuran = ", hasil.shape)

Setelah itu, coba jalankan!

Maka hasilnya:

Contoh matrik-flatten

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:

Contoh coding data statistik dengan Python

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!