Random values in a given shape. Show Note This is a convenience function for users porting code from Matlab, and wraps Create an array of the given shape and populate it with random samples from a uniform distribution over The dimensions of the returned array, must be non-negative. If no argument is given a single Python float is returned. Returnsoutndarray, shape(d0, d1, ..., dn) Random values. Examples >>> np.random.rand(3,2) array([[ 0.14022471, 0.96360618], #random [ 0.37601032, 0.25528411], #random [ 0.49313049, 0.94909878]]) #random Numpy Array¶Membuat Array dari Python List¶In [2]: # 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: In [3]: np.array([3.14, 5, 2, 8]) Out[3]: array([3.14, 5. , 2. , 8. ]) Membuat Array dari Awal¶Untuk membuat array yang besar, lebih efesien membuat array dari awal dengan menggunakan routine yang sudah terdapat di Numpy. Berikut beberapa contohnya: In [4]: # Membuat sebuah array bertipe integer dengan panjang 10 dan berisi semua nol np.zeros(10, dtype=int) Out[4]: array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) In [5]: # Membuat array berukuran 3x5 float dan berisi 1 semua np.ones((3,5), dtype=int) Out[5]: array([[1, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 1]]) In [6]: # Membuat 3x5 array yang berisi 3.14 semua np.full((3,5),3.14) Out[6]: array([[3.14, 3.14, 3.14, 3.14, 3.14], [3.14, 3.14, 3.14, 3.14, 3.14], [3.14, 3.14, 3.14, 3.14, 3.14]]) In [7]: # Membuat array berurutan dimulai dari 0 dan berakhir pada 20 dan bertambah 2 np.arange(0,20,2) Out[7]: array([ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18]) In [8]: # Membuat array dengan 5 nilai yang berjarak diatara 0 dan 1 np.linspace(0,1,5) Out[8]: array([0. , 0.25, 0.5 , 0.75, 1. ]) In [9]: # Membuat 3x3 array random # nilai random diantara 0 dan 1 np.random.random((3,3)) Out[9]: array([[0.05681408, 0.33232413, 0.71184618], [0.60768214, 0.28107309, 0.7500548 ], [0.3864422 , 0.45528181, 0.05189743]]) In [10]: # Membuat 3x3 array dengan random bertipe integer pada interval 0,10 np.random.randint(0,10, (3,3)) Out[10]: array([[3, 9, 5], [7, 2, 6], [5, 7, 6]]) In [11]: # Membuat 3x3 matriks identitas np.eye(3) Out[11]: array([[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]]) Array Indexing¶Jika kamu sudah terbiasa dengan indexing pada Python standard, indexing di Numpy mirip seperti itu. In [12]: # 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 Out[13]: array([5, 0, 3, 3, 7, 9]) In [14]: # mengakses nilai 5 yang berada di index-0 x1[0] In [15]: # mengakses nilai 0 pada index-1 x1[1] Untuk index dari belakang, menggunakan tanda negatif(-) In [16]: # Mengakses nilai terakhir pada array yaitu 9 x1[-1] In [17]: # Mengakses nilai sebelum nilai terakhir x1[-2] Pada array multidemensi, kita dapat mengakses nilai tersebut dengan memberikan tanda koma (,) Out[18]: array([[3, 5, 2, 4], [7, 6, 8, 8], [1, 6, 7, 7]]) In [20]: # Mengakses index baris 2 pada kolom terakhir x2[2,-1] Numpy Array Attributes¶[[3 5 2 4] [7 6 8 8] [1 6 7 7]] In [22]: print("x2 ndim: ", x2.ndim) # Jumlah dimensi array print("x2 shape: ", x2.shape) # Bentuk array print("x2 size: ", x2.ndim) # total ukuran aaray x2 ndim: 2 x2 shape: (3, 4) x2 size: 2 Array Slicing:Accessing Subarray¶Mengakses subarray dengan menggunakan tanda (:) dengan cara Subarray Satu Dimensi¶Out[23]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) In [24]: # Mengakses lima elemen pertama x[:5] In [25]: # Mengakses elemen setalh index 5 x[5:] In [26]: # 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 In [27]: # Dimulai dari index 1 hingga terakhir, dengan step(melangkahi) 2 x[1::2] Subarray Multidimensi¶Out[28]: array([[3, 5, 2, 4], [7, 6, 8, 8], [1, 6, 7, 7]]) In [29]: # Mengakses 2 baris pertama dan 3 kolom pertama x2[:2,:3] Out[29]: array([[3, 5, 2], [7, 6, 8]]) Subarray as no-copy views¶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 [[3 5 2 4] [7 6 8 8] [1 6 7 7]] In [31]: # membuat 2x2 subarray x2 x2_sub = x2[:2,:2] print(x2_sub) In [32]: # Kita akan merubah nilai dari x2_sub pada index 0,0 x2_sub[0,0] = 99 print(x2_sub) In [33]: # Dan coba lihat x2, nilainya juga akan berubah print(x2) [[99 5 2 4] [ 7 6 8 8] [ 1 6 7 7]] Membuat Copy dari Array¶In [34]: x2_sub_copy = x2[:2,:2].copy() print(x2_sub_copy) In [35]: # Lalu kita ubah nilainya x2_sub_copy[0,0] = 42 print(x2_sub_copy) In [36]: # Lihat x2 yang asli, nilainya tidak berubah print(x2) [[99 5 2 4] [ 7 6 8 8] [ 1 6 7 7]] |