Pemrosesan Data Numerik dengan NumPy
Table of Contents
NumPy Dasar-dasar Komputasi Numerik - This article is part of a series.
NumPy menawarkan beragam fungsi dan metode yang memungkinkan pemrosesan data numerik dengan cara yang efisien. Dari operasi matriks hingga pemrosesan statistik, NumPy memudahkan pengolahan data numerik. Mari kita eksplorasi lebih jauh tentang pemrosesan data numerik menggunakan NumPy.
Pada bagian ini, kita akan memasuki tahap lebih lanjut dari eksplorasi NumPy dengan fokus pada pemrosesan data numerik. Dari operasi matriks dan vektor hingga pengolahan statistik, kita akan mempelajari berbagai fitur NumPy yang mendukung manipulasi data dengan efisien.
A. Operasi Matriks dan Vektor #
Matriks dan vektor adalah elemen kunci dalam komputasi numerik. Pada sub-bagian ini, kita akan memahami cara membuat, memanipulasi, dan melakukan operasi pada matriks dan vektor menggunakan NumPy. Ini adalah fondasi penting untuk pemrosesan data numerik yang lebih kompleks.
1. Matriks dan Vektor Identitas #
import numpy as np
# Membuat matriks identitas
identity_matrix = np.eye(3)
print("Matriks Identitas:\n", identity_matrix)
# Membuat vektor dengan nilai yang sama
vector_of_ones = np.ones(5)
print("Vektor Ones:\n", vector_of_ones)
# Membuat vektor dengan nilai berurutan
vector_range = np.arange(1, 6)
print("Vektor Range:\n", vector_range)
Hasil Print:
Matriks Identitas:
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
Vektor Ones:
[1. 1. 1. 1. 1.]
Vektor Range:
[1 2 3 4 5]
2. Transposisi Matriks #
import numpy as np
# Membuat matriks acak
random_matrix = np.random.rand(2, 3)
print("Matriks Awal:\n", random_matrix)
# Melakukan transposisi matriks
transposed_matrix = random_matrix.T
print("Matriks Transposisi:\n", transposed_matrix)
Hasil Print:
Matriks Awal:
[[0.8710172 0.56729252 0.17447695]
[0.53586624 0.59746567 0.6322047 ]]
Matriks Transposisi:
[[0.8710172 0.53586624]
[0.56729252 0.59746567]
[0.17447695 0.6322047 ]]
B. Pemrosesan Statistik #
Pemahaman statistik sangat penting dalam analisis data. Dalam sub-bagian ini, kita akan membahas cara menggunakan NumPy untuk menghitung statistik dasar, seperti rata-rata, median, dan standar deviasi. Informasi ini memberikan pemahaman yang kokoh tentang distribusi data yang sedang diolah.
1. Menghitung Rata-rata, Median, dan Standar Deviasi #
import numpy as np
# Membuat array acak
random_array = np.random.randn(100)
print("Array Acak:\n", random_array)
# Menghitung rata-rata, median, dan standar deviasi
mean_value = np.mean(random_array)
median_value = np.median(random_array)
std_deviation = np.std(random_array)
print("Rata-rata:", mean_value)
print("Median:", median_value)
print("Standar Deviasi:", std_deviation)
Hasil Print:
Array Acak:
[-0.34204284 0.68808972 0.15614086 -1.59811595 1.05749392 ...]
Rata-rata: 0.027547684534724758
Median: 0.025329064739015476
Standar Deviasi: 1.0096567277403523
2. Menemukan Nilai Minimum dan Maksimum #
import numpy as np
# Membuat array acak
random_array = np.random.randint(1, 100, size=(3, 4))
print("Array Acak:\n", random_array)
# Menemukan nilai minimum dan maksimum
min_value = np.min(random_array)
max_value = np.max(random_array)
print("Nilai Minimum:", min_value)
print("Nilai Maksimum:", max_value)
Hasil Print:
Array Acak:
[[62 36 50 55]
[14 95 95 48]
[14 52 9 29]]
Nilai Minimum: 9
Nilai Maksimum: 95
C. Operasi Element-wise dan UFuncs #
Operasi element-wise memungkinkan kita untuk melakukan operasi pada setiap elemen array secara terpisah, meningkatkan efisiensi dalam komputasi numerik. Sub-bagian ini akan menjelaskan konsep ini dan memperkenalkan Universal Functions (UFuncs), yang menyederhanakan operasi pada array.
1. Operasi Aritmetika Element-wise #
import numpy as np
# Membuat dua array
array1 = np.array([[1, 2], [3, 4]])
array2 = np.array([[5, 6], [7, 8]])
# Operasi aritmetika element-wise
addition_result = np.add(array1, array2)
multiplication_result = np.multiply(array1, array2)
print("Hasil Penjumlahan:\n", addition_result)
print("Hasil Perkalian:\n", multiplication_result)
Hasil Print:
Hasil Penjumlahan:
[[ 6 8]
[10 12]]
Hasil Perkalian:
[[ 5 12]
[21 32]]
2. Fungsi Universal (UFuncs) #
import numpy as np
# Membuat array acak
random_array = np.random.randn(3, 3)
print("Array Acak:\n", random_array)
# Menggunakan fungsi universal (ufuncs)
absolute_values = np.abs(random_array)
exponential_values = np.exp(random_array)
print("Nilai Mutlak:\n", absolute_values)
print("Nilai Eksponensial:\n", exponential_values)
Hasil Print:
Array Acak:
[[-0.37215487 -1.38167016 1.17828519]
[ 0.24874326 -0.34763507 1.24873125]
[-0.40855993 0.02741733 1.01732435]]
Nilai Mutlak:
[[0.37215487 1.38167016 1.17828519]
[0.24874326 0.34763507 1.24873125]
[0.40855993 0.02741733 1.01732435]]
Nilai Eksponensial:
[[0.68971348 0.25135803 3.24920456]
[1.28277917 0.70619271 3.48439673]
[0.66451073 1.02782519 2.76591914]]
D. Pengindeksan dan Slicing #
Pengindeksan dan slicing adalah teknik esensial dalam manipulasi array. Dalam sub-bagian ini, kita akan belajar bagaimana mengakses dan memanipulasi data menggunakan pengindeksan dan slicing pada array NumPy satu dimensi dan multi-dimensi.
1. Pengindeksan dan Slicing pada Array Satu Dimensi #
import numpy as np
# Membuat array
array_1d = np.array([1, 2, 3, 4, 5])
print("Array Satu Dimensi:\n", array_1d)
# Pengindeksan dan slicing
value_at_index_2 = array_1d[2]
subset_array = array_1d[1:4]
print("Nilai pada Index 2:", value_at_index_2)
print("Subset Array:", subset_array)
Hasil Print:
Array Satu Dimensi:
[1 2 3 4 5]
Nilai pada Index 2: 3
Subset Array: [2 3 4]
2. Pengindeksan dan Slicing pada Array Multi-dimensi #
import numpy as np
# Membuat array dua dimensi
array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print("Array Dua Dimensi:\n", array_2d)
# Pengindeksan dan slicing
value_at_row2_col1 = array_2d[1, 0]
subset_array = array_2d[:2, 1:]
print("Nilai pada Baris 2 Kolom 1:", value_at_row2_col1)
print("Subset Array:\n", subset_array)
Hasil Print:
Array Dua Dimensi:
[[1 2 3]
[4 5 6]
[7 8 9]]
Nilai pada Baris 2 Kolom 1: 4
Subset Array:
[[2 3]
[5 6]]
E. Pemrosesan Logika pada Array #
Operasi logika pada array memungkinkan kita membuat kondisi logika dan memfilter data sesuai dengan kriteria tertentu. Pada sub-bagian ini, kita akan menjelajahi cara menggunakan operasi logika NumPy untuk menyaring dan memahami pola data dalam konteks analisis numerik.
import numpy as np
# Membuat array acak
random_array = np.random.randn(3, 3)
print("Array Acak:\n", random_array)
# Memeriksa kondisi logika
greater_than_zero = random_array > 0
equal_to_zero = np.equal(random_array, 0)
print("Lebih Besar dari Nol:\n", greater_than_zero)
print("Sama dengan Nol:\n", equal_to_zero)
Hasil Print:
Array Acak:
[[-0.29582409 0.25325608 -0.73248749]
[ 0.51259006 0.1620317 0.27146152]
[-0.4174051 0.50831191 -0.86573223]]
Lebih Besar dari Nol:
[[False True False]
[ True True True]
[False True False]]
Sama dengan Nol:
[[False False False]
[False False False]
[False False False]]
F. Menggunakan Fungsi Pemrosesan Data SciPy #
SciPy, sebagai pustaka pendukung NumPy, menyediakan fungsi lanjutan untuk pemrosesan data numerik. Sub-bagian ini akan membahas cara menggunakan fungsi dari SciPy, seperti z-score, untuk analisis statistik yang lebih mendalam.
import numpy as np
from scipy import stats
# Membuat array acak
random_array = np.random.randn(100)
print("Array Acak:\n", random_array)
# Menggunakan fungsi pemrosesan data dari SciPy
z_scores = stats.zscore(random_array)
print("Z-Scores:\n", z_scores)
Hasil Print:
Array Acak:
[ 0.51689054 1.07923826 -0.27801058 -0.36932893 0.47834181 ...]
Z-Scores:
[ 0.3687808 0.9379308 -0.20855094 -0.28053574 0.33285383 ...]
Melalui operasi matriks, pemrosesan statistik, operasi element-wise, pengindeksan, dan slicing, NumPy menyediakan kemampuan yang luas untuk pemrosesan data numerik. Pemahaman tentang berbagai fungsi dan metode ini memungkinkan kita untuk mengelola, menganalisis, dan memanipulasi data dengan efisien dalam konteks komputasi numerik.