Jika ada paket yang harus digunakan untuk kalkulasi atau komputasi ilmiah apa pun, maka pujiannya diberikan kepada pahlawan kita, NumPy!

Python sudah efisien. Jadi mengapa perpustakaan NumPy dibuat?

  • NumPy Array adalah alternatif dari Daftar Python
  • Tidak seperti Array Python, array NumPy dapat melakukan penghitungan pada seluruh array
  • Ini berfungsi sebagai landasan penting untuk paket lain, misalnya: scikit-learn
  • Banyak fungsi tersedia di NumPy dengan penggunaan yang lebih nyaman
  • Tentu saja daftarnya belum lengkap tanpa menyebutkan bahwa mereka efisien dan cepat

Selain itu, NumPy juga lebih disukai karena merupakan

  • objek array N-dimensi yang kuat
  • fungsi canggih (penyiaran).
  • alat untuk mengintegrasikan kode C/C++ dan Fortran
  • aljabar linier yang berguna, transformasi Fourier, dan kemampuan bilangan acak

Terlepas dari fungsinya yang luar biasa dalam komputasi ilmiah, NumPy menangani data multidimensi secara efisien terutama jika menyangkut data umum. Hal ini mendorong NumPy untuk berintegrasi dengan berbagai database.

Mari kita mulai dengan NumPy!

Kita akan menggunakan array atau matriks secara ekstensif sehingga untuk mempermudah penggunaannya, mari gunakan NumPy. Kita perlu mengimpor perpustakaan:

In[]: import numpy as np
# np is just an alias, you don't want to type numpy all the time

1. Array numpy dapat dibuat dengan mengonversi dari daftar:

In[]: my_list = [1,2,3,4]
In[]: my_array = np.array(my_list)
In[]: my_array
Out[]: array([1, 2, 3, 4])

2. Anda dapat menambahkan satu atau beberapa daftar untuk membentuk array numpy multidimensi:

In[]: my_list1 = [1, 2, 3, 4]
In[]: my_list2 = [11, 22, 33, 44]
In[]: my_list = [my_list1, my_list2]
In[]: my_array = np.array(my_list)
In[]: my_array
Out[]: array([[ 1,  2,  3,  4],
       [11, 22, 33, 44]])

3. Panjang array numpy (Matriks) - [Fungsi Bentuk]:

In[]: my_array.shape
Out[]: (2, 4)

4. Tipe Data array numpy:

In[]: my_array.dtype
Out[]: dtype('int32')

5. Membuat array angka nol yang numpy:

In[]: np.zeros(5)
Out[]: array([0., 0., 0., 0., 0.])
# notice these are floating type

6. Membuat array numpy dari Ones:

In[]: np.ones([5, 5])
Out[]: array([[1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1.]])

7. Membuat Matriks identitas:

In[]: np.eye(5)
Out[]: array([[1., 0., 0., 0., 0.],
       [0., 1., 0., 0., 0.],
       [0., 0., 1., 0., 0.],
       [0., 0., 0., 1., 0.],
       [0., 0., 0., 0., 1.]])

8. Apa bedanya daftar python dengan array numpy?

In[]: height = [1.73, 1.68, 1.71]
In[]: height
Out[]: [1.73, 1.68, 1.71]
In[]: weight = [65.4, 59.2, 63.6]
In[]: weight
Out[]: [65.4, 59.2, 63.6]
# Calculating BMI for the present
In[]: weight / height ** 2
TypeError: unsupported operand type(s) for ** 'list' and 'int'

Sekarang ini terjadi karena python tidak tahu bagaimana melakukan perhitungan atau komputasi pada daftar.

Anda dapat menghitung BMI untuk setiap orang secara terpisah. Tapi itu sangat tidak efisien. Solusi elegan adalah dengan menggunakan numpy('num'-eric'py'-thon) .

In[]: np_height = np.array(height)
In[]: np_height
Out[]: array([1.73, 1.68, 1.71])
In[]: np_weight = np.array(weight)
In[]: np_weight
Out[]: array([65.4, 59.2, 63.6])
In[]: BMI = np_height / np_weight ** 2
In[]: BMI
Out[]: array([21.85171573, 20.97505669, 21.75028214])

Bukti lain bahwa daftar python berbeda dari array numpy adalah tentang bagaimana mereka melakukan operasi matematika di antara dirinya sendiri

# Python List
In[]: python_list = [1, 2, 3]
In[]: python_list + python_list
Out[]: [1, 2, 3, 1, 2, 3] #appends
# Numpy Array
In[]: numpy_array = np.array([1, 2, 3])
In[]: numpy_array + numpy_array
Out[]: array([2, 4, 6]) #performs addition

9. Sub-Pengaturan Numpy:

# Let us recall the BMI we calculated above
In[]: BMI
Out[]: array([21.85171573, 20.97505669, 21.75028214])
In[]: BMI[1]
Out[]: 20.97505668934241
In[]: BMI > 21.8
Out[]: array([ True, False, False])
In[]: BMI[BMI > 21.8]
Out[]: array([21.85171573])

Ssst! Berikut cara membuat array numpy(umum digunakan)

Syntax: np.arange([start], [stop], [step_size])
# return evenly spaced values within a given interval
In[]: np.arange(5)
Out[]: array([0, 1, 2, 3, 4])
In[]: np.arange(5, 50, 2)
Out[]: array([ 5,  7,  9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49])

10. Mengindeks Array Numpy

In[]: arr = np.arange(0, 11)
In[]: arr
Out[]: array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10])
In[]: arr[8]
Out[]: 8
# How to fetch values from Nth location to Mth location?
# This is technically called SLICING if you assign to other variable
In[]: arr[1:5]
Out[]: array([1, 2, 3, 4])
# Lets make first 5 range values equate to 500
In[]: arr[0:5] = 500
In[]: arr
Out[]: array([500, 500, 500, 500, 500,   5,   6,   7,   8,   9,  10])
# Slicing
In[]: sliced_array = arr[0:6]
In[]: sliced_array
Out[]: array([500, 500, 500, 500, 500,   5])
# See the magic here
In[]: sliced_array[5] = 600
In[]: sliced_array
Out[]: array([500, 500, 500, 500, 500, 600])
In[]: arr
Out[]: array([500, 500, 500, 500, 500, 600,   6,   7,   8,   9,  10])
# Wait... WHAT?! But we assigned the sliced values to new numpy array. Why is arr[5] showing 600?

Jadi irisan bukanarray yang terpisah. Ini adalah salinandari array asli. Setiap perubahan pada irisan mencerminkan array numpy asli. Hal ini dilakukan oleh numpy untuk menghapus penggunaan memori yang tidak diperlukan.

Jadi bagaimana sebenarnya kita bisa menyalin array numpy ke array lain secara eksplisit?

In[]: arr_copy = arr.copy()
In[]: arr[5] = 5
In[]: arr
Out[]: array([500, 500, 500, 500, 500,   5,   6,   7,   8,   9,  10])
In[]: arr_copy
Out[]: array([500, 500, 500, 500, 500, 600,   6,   7,   8,   9,  10])
# Voila! It did not change this time!

11. Membuat matriks N x M

# arange creates serial values from 0 to 49
# reshape is used to shape the matrix.
# Reshape works like - reshape(rows, columns)
In[]: arr = np.arange(50).reshape(10,5)
In[]: arr
Out[]: array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14],
       [15, 16, 17, 18, 19],
       [20, 21, 22, 23, 24],
       [25, 26, 27, 28, 29],
       [30, 31, 32, 33, 34],
       [35, 36, 37, 38, 39],
       [40, 41, 42, 43, 44],
       [45, 46, 47, 48, 49]])
# Array Transposition
In[]: arr.T
Out[]: array([[ 0,  5, 10, 15, 20, 25, 30, 35, 40, 45],
       [ 1,  6, 11, 16, 21, 26, 31, 36, 41, 46],
       [ 2,  7, 12, 17, 22, 27, 32, 37, 42, 47],
       [ 3,  8, 13, 18, 23, 28, 33, 38, 43, 48],
       [ 4,  9, 14, 19, 24, 29, 34, 39, 44, 49]])

Mari kita simpan sampai di sini untuk saat ini. Ini adalah pengenalan singkat tentang Numpy. Ikuti saya untuk mendapatkan pembaruan rutin tentang tutorial semacam ini.

Jika Anda menikmati membaca artikel ini, silakan kunjungi artikel ini.
Tambahkan saya di LinkedIn, Twitter dan Github