I have two arrays.
"a", a 2d numpy array.
import numpy.random as npr a = array([[5,6,7,8,9],[10,11,12,14,15]]) array([[ 5, 6, 7, 8, 9], [10, 11, 12, 14, 15]])"idx", a 3d numpy array constituting three index variants I want to use to index "a".
idx = npr.randint(5, size=(nsamp,shape(a)[0], shape(a)[1])) array([[[1, 2, 1, 3, 4], [2, 0, 2, 0, 1]], [[0, 0, 3, 2, 0], [1, 3, 2, 0, 3]], [[2, 1, 0, 1, 4], [1, 1, 0, 1, 0]]])Now I want to index "a" three times with the indices in "idx" to obtain an object as follows:
array([[[6, 7, 6, 8, 9], [12, 10, 12, 10, 11]], [[5, 5, 8, 7, 5], [11, 14, 12, 10, 14]], [[7, 6, 5, 6, 9], [11, 11, 10, 11, 10]]])The naive "a[idx]" does not work. Any ideas as to how to do this? (I use Python 3.4 and numpy 1.9)
NumPy merupakan salah satu library Python yang banyak digunakan dalam proses analisis data karena fiturnya yang hebat
NumPy hampir menyerupai List pada Python tetapi lebih powerful. Ada beberap kelebihan NumPy dibandingkan List seperti size, performance dan functionally
Struktur data NumPy lebih membutuhkan ukuran yang lebih kecil dibandingkan dengan List tetapi mempunyai performa yang lebih cepat
Sebelum menggunakan NumPy di Python, terlebih dahulu library ini harus diimport
import numpy as npJika belum ada NumPy dapat diinstall terlebih dahulu menggunakan pip
Contents
- 1 Membuat Array NumPy
- 2 Multidimensional Array
- 3 Indexing dan Slicing
- 4 Operasi Aritmatika
- 5 Operasi Matematika
Membuat Array NumPy
Kita bisa membuat Array menggunakan NumPy dengan membungkusnya terlebih dahulu di List dan dirubah menjadi numpy array.
listku = [1,2,3,4,5] arrku = np.array([listku]) arrkuatau langsung tanpa membuat variabel list terlebih dahulu
arrku = np.array([1,2,3,4,5]) arrkuHasilnya akan seperti ini
array([1, 2, 3, 4, 5])Ada beberapa fungsi lagi yang dapat digunakan dalam membuat array antara lain zeros(), ones(), arange(), linspace(), logspace(),
zeros() -> Membuat array dengan nilai 0 ones() -> Membuat array dengan nilai 1 arange() -> Membuat array dengan nilai dalam range linspace() -> Membuat array dengan nilai dalam interval logspace() -> Membuat array dengan nilai log Base10 dalam intervalBerikut contohnya
np.zeros(5) # membuat array dengan nilai 0 sebanyak 5 np.ones(5) # membuat array dengan nilai 1 sebanyak 5 np.arange(1, 10, 2) #arange(start, stop, step) np.linspace(1, 10, 2) # linespace(start, stop, number) np.logspace(1, 10, 2) # logspace(start, stop, number)Hasilnya
[0. 0. 0. 0. 0.] [1. 1. 1. 1. 1.] [1 3 5 7 9] [ 1. 10.] [1.e+01 1.e+10]Multidimensional Array
Salah satu fitur menarik dari NumPy adalah dia mampu membuat multidimensional array dan melakukan manipulasi array dengan mudah dan cepat
Multidimensional array adalah array yang berbentuk lebih dari 1 dimensi (1D), bisa 2D, 3D, 4D dan seterusnya
Cara membuat multidimensional array sama dengan membuat array 1 dimensi, perbedaannya hanya pada parameter yang digunakan
Berikut contohnya membuat array 2 dimensi
Hasilnya
array([[ 1, 2, 3, 4, 5], [ 2, 4, 6, 8, 10]])Array diatas adalah berbentuk (2,5) artinya mempunyai 2 baris dan 5 kolom
Kita bisa melihat jumlah elemen di setiap dimensi dengan menggunakan shape
arrku.shapeIndexing dan Slicing
Kita juga dapat melakukan indexing dan slicing terhadap array dengan mudah
Indexing dimulai dari 0 dan dimulai dengan notasi bracket “[ ]”
Misal kita ingin mencari nilai yang berada di index 0, 2, dan 4
arr_A = np.array([1,2,3,4,5]) print(arr_A[0]) print(arr_A[2]) print(arr_A[4])Hasilnya
1 3 5Untuk mengambil nilai berderet tambahkan “:”
arr_A = np.array([1,2,3,4,5]) print(arr_A[0:4])Kita juga dapat melakukan slicing di multidimensional array
arr_A = np.array([[1,2,3,4,5], [2,4,6,8,10]]) print(arr_A) print(arr_A[1,1])Nilai pada kolom index ke-1 dan baris index ke-1 adalah 4
Operasi Aritmatika
Kita bisa menggunakan operasi aritmatika seperti penjumlahan, pengurangan, perkalian, pembagian dan perpangkatan
Operator yang digunakan adalah +, -, *, / dan **
Berikut contoh operasi aritmatika pada array
arr_A = np.array([1,2,3,4,5]) arr_B = np.array([2,2,2,2,2]) print("Penjumlahan = ", arr_A + arr_B) print("Pengurangan = ", arr_A - arr_B) print("Perkalian = ", arr_A * arr_B) print("Pembagian = ", arr_A / arr_B) print("Perpangkatan = ", arr_A ** arr_B)Hasilnya adalah
Penjumlahan = [3 4 5 6 7] Pengurangan = [-1 0 1 2 3] Perkalian = [ 2 4 6 8 10] Pembagian = [0.5 1. 1.5 2. 2.5] Perpangkatan = [ 1 4 9 16 25]Untuk lebih jelas operasi aritmatika buka halaman ini
Operasi Matematika
NumPy mempunyai fungsi matematika yang dapat digunakan pada Array
Beberapa contoh fungsi statistik antara lain min(), max(), mean(), sum(), std()
arrku = np.array([1,2,3,4,5]) print("Nilai minimal = ", arrku.min()) print("Nilai maksimal = ", arrku.max()) print("Nilai rata-rata = ", arrku.mean()) print("Total nilai = ", arrku.sum()) print("Standar Deviasi = ", arrku.std())Hasilnya adalah
Nilai minimal = 1 Nilai maksimal = 5 Nilai rata-rata = 3.0 Total nilai = 15 Standar Deviasi = 1.4142135623730951Ada juga fungsi argmin() dan argmax() untuk mendapatkan index dari nilai minimum dan maksimum
print("Index nilai niminal = ", arrku.argmin()) print("Index nilai maksimal = ", arrku.argmax())Hasilnya
Index nilai niminal = 0 Index nilai maksimal = 4