Membuat Objek Array Menggunakan Numpy

numpy array python sainsdata.id

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

Tulisan Lainnya

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *

Daftar Isi