import numpy as np
# integer array:
np.array([1, 2, 3, 4])
Tidak seperti Python lists, Numpy array elemen-elemennya bertipe data sama. Apabila tipe data nya tidak sama maka Numpy akan melakuakan upcast (menyamakan ke tipe data yang lebih tinggi) misalnya integer akan upcast ke float:
np.array([3.14, 5, 2, 8])
Untuk membuat array yang besar, lebih efesien membuat array dari awal dengan menggunakan routine yang sudah terdapat di Numpy. Berikut beberapa contohnya:
# Membuat sebuah array bertipe integer dengan panjang 10 dan berisi semua nol
np.zeros(10, dtype=int)
# Membuat array berukuran 3x5 float dan berisi 1 semua
np.ones((3,5), dtype=int)
# Membuat 3x5 array yang berisi 3.14 semua
np.full((3,5),3.14)
# Membuat array berurutan dimulai dari 0 dan berakhir pada 20 dan bertambah 2
np.arange(0,20,2)
# Membuat array dengan 5 nilai yang berjarak diatara 0 dan 1
np.linspace(0,1,5)
# Membuat 3x3 array random
# nilai random diantara 0 dan 1
np.random.random((3,3))
# Membuat 3x3 array dengan random bertipe integer pada interval 0,10
np.random.randint(0,10, (3,3))
# Membuat 3x3 matriks identitas
np.eye(3)
Jika kamu sudah terbiasa dengan indexing pada Python standard, indexing di Numpy mirip seperti itu.
# Membuat array random
np.random.seed(0)
x1 = np.random.randint(10, size=6) # array satu dimensi
x2 = np.random.randint(10, size=(3,4)) # array dua dimensi
x3 = np.random.randint(10, size=(3,4,5)) # array tiga dimensi
x1
# mengakses nilai 5 yang berada di index-0
x1[0]
# mengakses nilai 0 pada index-1
x1[1]
Untuk index dari belakang, menggunakan tanda negatif(-)
# Mengakses nilai terakhir pada array yaitu 9
x1[-1]
# Mengakses nilai sebelum nilai terakhir
x1[-2]
Pada array multidemensi, kita dapat mengakses nilai tersebut dengan memberikan tanda koma (,)
x2
x2[0,0]
# Mengakses index baris 2 pada kolom terakhir
x2[2,-1]
print(x2)
print("x2 ndim: ", x2.ndim) # Jumlah dimensi array
print("x2 shape: ", x2.shape) # Bentuk array
print("x2 size: ", x2.ndim) # total ukuran aaray
Mengakses subarray dengan menggunakan tanda (:) dengan cara
x[start:stop:step]
x = np.arange(10)
x
# Mengakses lima elemen pertama
x[:5]
# Mengakses elemen setalh index 5
x[5:]
# middle subarray, dimulai dari index 4 sampai index 6
x[4:7]
# index stop nya 7 jadi index stop itu +1 dari index terakhir yang ingin kita ambil
# Dimulai dari index 1 hingga terakhir, dengan step(melangkahi) 2
x[1::2]
x2
# Mengakses 2 baris pertama dan 3 kolom pertama
x2[:2,:3]
Penting untuk diketaui slicing array hanya mengambil tampilan dari yang asli, sehingga array yang asli dapat dirubah nilainya dengan menggunakan variabel dari array sclicing nya. Berikut ini contohnya
print(x2)
# membuat 2x2 subarray x2
x2_sub = x2[:2,:2]
print(x2_sub)
# Kita akan merubah nilai dari x2_sub pada index 0,0
x2_sub[0,0] = 99
print(x2_sub)
# Dan coba lihat x2, nilainya juga akan berubah
print(x2)
x2_sub_copy = x2[:2,:2].copy()
print(x2_sub_copy)
# Lalu kita ubah nilainya
x2_sub_copy[0,0] = 42
print(x2_sub_copy)
# Lihat x2 yang asli, nilainya tidak berubah
print(x2)