Membuat Objek Array Menggunakan Numpy
Numpy merupakan library python yang powerful dalam menangani problem aljabar linier. Library numpy sendiri sangat penting dan menjadi dasar dari banyak library pengolahan data dan machine learning seperti pandas, scipy, scikit-learn dan sebagainya.
Terdapat banyak alasan mengapa penggunaan numpy merupakan pilihan yang lebih baik dibandingkan standar objek list python. Beberapa kelebihan numpy adalah:
- Penggunaan momori yang lebih efisien
- Fleksibilitas yang tinggi untuk menangani Multidimensional Objek
- Kemampuan komputasi numerik yang lebih cepat
- Broadcasting fungsi dan operasi
- Banyak library machine learning yang dibangun berdasarkan numpy
Pembahasan tentang numpy akan dibagi menjadi dua bagian. Tulisan ini merupakan bagian pertama yang akan membahas fungsi-fungsi untuk pembuatan objek numpy array. Pada bagian berikutnya akan dijelaskan lebih jauh mengenai operasi aritmetik pada objek numpy.
Install library numpy menggunakan python package management seperti conda dan pip:
Python
# menggunakan conda # conda install numpy # menggunakan pip # pip install numpy import numpy as np
Numpy Array dari Python List
Objek numpy array dapat dibuat dari objek list menggunakan fungsi np.array(list)
. Berikut contohnya:
Python
# Membuat objek numpy array # dari list 1-D (vektor) list1 = [1, 2, 3, 4, 5] arr_1d = np.array(list1) print(arr_1d)
Output
# Output array([1, 2, 3, 4, 5])
Cara yang sama berlaku untuk membuat numpy array 2-D maupun N-Dimensi.
Python
list_2d = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]] arr_2d = np.array(list_2d) arr_2d
Output
# Output array([[ 1, 2, 3, 4], [ 5, 6, 7, 8], [ 9, 10, 11, 12]])
Untuk melihat dimensi array yang sudah dibuat dapat menggunakan method shape
.
Python
print(arr_1d.shape) print(arr_2d.shape)
Output
# Output (5,) (3, 4)
Numpy Array dengan Fungsi Built-In
Selain menggunakan objek list, terdapat beberapa method built-in pada numpy yang befungsi untuk membuat objek numpy array dengan kriteria tertentu.
arange
Fungsi arange
digunakan untuk membuat array berdasarkan nilai minimum dan maksimum yang diberikan. Terdapat 3 parameter yang dapat diberikan pada fungsi ini yaitu start
, stop
dan step
. Parameter start
merupakan elemen pertama (inklusif) array dan parameter stop
merupakan batas nilai elemen terakhir (eksklusif). Parameter step
merupakan jarak antara 2 elemen yang berurutan. Nilai default untuk parameter step adalah 1.
Python
arr_1 = np.arange(1, 5) # arr_1 = np.arange(start=1, stop=5) print(arr_1)
Output
# Output array([1, 2, 3, 4])
Dengan mengatur nilai parameter step, maka setiap elemen secara berurutan akan memiliki perbedaan sebesar nilai step. Seperti contoh berikut, elemen pertama bernilai 2 sementara elemen ke-2 dan seterusnya akan berjarak 3.
Python
arr_2 = np.arange(2, 15, 3) arr_2
Output
# Output array([ 2, 5, 8, 11, 14])
zeros
Fungsi zeros
dipakai untuk membuat array dimana semua elemen bernilai 0.
Python
arr_3 = np.zeros(4) arr_3
Output
# Output array([0., 0., 0., 0.])
Untuk membuat array berdimensi 2 atau lebih, cukup menentukan ukuran masing-masing dimensi dalam bentuk tuple (n_1, n_2, ...)
.
Python
# Array 2-D ukuran 3 x 3 arr_4 = np.zeros((3, 3)) arr_4
Output
# Output array([[0., 0., 0.], [0., 0., 0.], [0., 0., 0.]])
ones
Fungsi ones
digunakan untuk membuat array dengan semua elemen bernilai 1.
Python
# Array 2-D ukuran 3 x 3 arr_5 = np.ones((3, 3)) arr_5
Output
# Output array([[1., 1., 1.], [1., 1., 1.], [1., 1., 1.]])
eye
Fungsi eye
dipakai untuk membuat matriks dimana nilai elemen ke-(i, i) bernilai 1 dan elemen lainnya bernilai 0. Untuk matriks persegi, maka fungsi eye
akan menghasilkan matriks identitas.
Python
arr_6 = np.eye(4, 4) print(arr_6) arr_7 = np.eye(3, 4) print(arr_7)
Output
# arr_6 array([[1., 0., 0., 0.], [0., 1., 0., 0.], [0., 0., 1., 0.], [0., 0., 0., 1.]]) # arr_7 array([[1., 0., 0., 0.], [0., 1., 0., 0.], [0., 0., 1., 0.]])
diag
Fungsi diag
digunakan untuk membuat matriks diagonal berdasarkan list elemen diagonal yang diberikan.
Python
arr_8 = np.diag([3, 6, 2, 4]) print(arr_8)
Output
# Output array([[3, 0, 0, 0], [0, 6, 0, 0], [0, 0, 2, 0], [0, 0, 0, 4]])
linspace
Output dari fungsi linspace
mirip dengan fungsi arange
. Pada fungsi arange
kita menentukan nilai dari step
tanpa mengetahui jumlah elemen yang dihasilkan. Sementara itu, pada fungsi linspace
yang kita tetapkan adalah parameter num
, yaitu jumlah elemen yang ingin dibuat. Adapun jarak antar elemen akan menyesuaikan dengan banyaknya elemen yang ditentukan.
Python
arr_9 = np.linspace(0, 1, 5) print(arr_9)
Output
# Output array([0. , 0.25, 0.5 , 0.75, 1. ])
Pada contoh di atas, kita membuat array dengan 5 elemen dimana nilainya berada pada interval 0 sampai 1. Jarak nilai antar elemen dibuat sama pada contoh ini adalah 0.25.
rand, randn, randint
Fungi rand
, randn
, randint
merupakan fungsi-fungsi pembangkitan bilangan acak pada numpy. Fungsi rand
digunakan untuk membangkitkan bilangan acak yang menyebar seragam [0, 1). Fungsi randn
membangkitkan bilangan acak yang mengikuti sebaran normal standar. Sementara itu, fungsi randint
akan membangkitkan bilangan acak integer pada interval tertentu.
Contoh fungsi rand
untuk array 1-Dimensi:
Python
arr_10 = np.random.rand(3) print(arr_10)
Output
# Output array([0.18357293, 0.20615607, 0.95578093])
Contoh fungsi rand
untuk membuat array 2-Dimensi (4 baris x 3 kolom):
Python
arr_11 = np.random.rand(4, 3) print(arr_11)
Output
# Output array([[0.49882784, 0.64416158, 0.64664227], [0.17183739, 0.07441564, 0.66397515], [0.23283752, 0.34851881, 0.15678227], [0.55958402, 0.82429999, 0.98195922]])
Membangkitkan matriks bilangan acak dengan fungsi randn
untuk array 2-Dimensi (3 baris x 4 kolom):
Python
arr_12 = np.random.randn(3, 4) print(arr_12)
Output
# Output array([[ 0.73674967, -1.0491574 , -0.16045404, -1.75672639], [ 0.6188255 , -1.31913707, -2.21417101, 0.78188334], [-0.82756879, -0.22013534, -0.10534893, -0.94959332]])
Contoh fungsi randint
untuk array 2-D (3 baris x 2 kolom) dengan interval nilai 10 hingga 30:
Python
arr_13 = np.random.randint(10, 30, (3, 2)) print(arr_13)
Output
# Output array([[15, 17], [18, 15], [29, 10]])
Ouput dari fungsi-fungsi di atas bersifat acak. Setiap kali dieksekusi, kode tersebut akan menghasilkan output array yang berbeda. Kita dapat mengatur agar output yang dihasilkan selalu sama yaitu menggunakan fungsi seed
. Dengan nilai seed
yang sama, pembangkitan bilangan acak pada numpy akan menghasilkan output yang sama.
Python
np.random.seed(100) arr_14 = np.random.randint(10, 50, (3, 3)) print(arr_14)
Output
# Output array([[18, 34, 13], [49, 33, 25], [20, 40, 44]])
Pada contoh di atas, kita menggunakan nilai seed
adalah 100 untuk membangkitkan matriks ukuran 3 x 3. Selama nilai seed
yang digunakan sama (misal pada contoh ini 100) maka variabel arr_14
akan selalu menghasilkan array yang sama seperti pada tampilan output. Jika menggunakan nilai seed
yang lain maka akan menghasilkan output yang berbeda.
reshape
Fungsi reshape
digunakan untuk merubah dimensi dan ukuran array. Misalkan terdapat array berukuran 1 x 12 seperti berikut:
Python
np.random.seed(100) arr_15 = np.random.randint(10, 50, 12) arr_16 = arr_15.reshape(3, 4) arr_17 = arr_15.reshape(3, 4, order="F") print(arr_15, arr_16, arr_17, sep="\n")
Output
# arr_15 array([18, 34, 13, 49, 33, 25, 20, 40, 44, 12, 44, 24]) # arr_16 array([[18, 34, 13, 49], [33, 25, 20, 40], [44, 12, 44, 24]]) # arr_17 array([[18, 49, 20, 12], [34, 33, 40, 44], [13, 25, 44, 24]])
Dengan menggunakan fungsi reshape
kita dapat merubah ukuran dari array tersebut, contohnya menjadi array 2-Dimensi 3 x 4 atau 6 x 2. Tidak terbatas pada array 2-Dimensi, fungsi reshape
juga berlaku untuk dimensi yang lebih tinggi misalkan menjadi array berukuran 2 x 3 x 2.
Pada contoh di atas, kita membuat array arr_16
berukuran 3 baris x 4 kolom berdasarkan arr_15
yang berukuran 1 baris x 12 kolom. Elemen arr_16
sama dengan arr_15
namun tersusun menjadi 3 baris dan 4 kolom.
Pada output tersebut dapat dilihat elemen arr_15
secara berurutan akan mengisi elemen baris pertama terlebih dahulu, diikuti baris kedua dan ketiga. Kita juga dapat mengatur agar proses reshape bekerja menurut kolom dengan menetapkan nilai parameter order="F"
.
Dapat dilihat pula bahwa arr_17
merupakan array hasil proses reshape dari arr_15
namun dalam pembentukan elemennya, secara berurutan akan mengisi kolom pertama terlebih dahulu.
Ringkasan
Pada bagian ini kita sudah membahas berbagai cara untuk membuat objek numpy array. Cara yang digunakan meliputi pembuatan objek dari python list serta menggunakan berbagai fungsi built-in meliputi arange
, zeros
, ones
, eye
, diag
, linspace
, rand
, randn
, randint
dan reshape
.
Bagian selanjutnya akan membahas operator dan fungsi untuk operasi aritmetika pada objek numpy array tersebut.
Selanjutnya : Operasi Aritmetika pada Objek Numpy Array