Sách Deep Learning cơ bản
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
32 Chương 2. Python cơ bản
2.4 Sử dụng Numpy
Vì Python là scripting language nên không thích hợp cho ML, Numpy giải quyết vấn đề trên bằng
cách xây dựng 1 thư viện viết bằng C nhưng có interface Python. Như vậy Numpy cộng hưởng 2 ưu
điểm của 2 ngôn ngữ: nhanh như C và đơn giản như Python. Điều này giúp ích rất nhiều cho cộng
đồng Machine Learning trên Python.
Mảng trong numpy gồm các phần tử có dùng kiểu giá trị, chỉ số không âm được bắt đầu từ 0, số
chiều được gọi là rank của mảng Numpy, và shape là một tuple các số nguyên đưa ra kích thước của
mảng theo mỗi chiều.
import numpy as np
a = np.array([1, 2, 3]) # Tạo array 1 chiều
print(type(a))
# Prints "<class 'numpy.ndarray'>"
print(a.shape) # Prints "(3,)"
print(a[0], a[1], a[2]) # Prints "1 2 3"
a[0] = 5 # Thay đổi phần tử vị trí số 0
print(a) # Prints "[5, 2, 3]"
b = np.array([[1,2,3],[4,5,6]]) # Tạo array 2 chiều
print(b.shape) # Prints "(2, 3)"
print(b[0, 0], b[0, 1], b[1, 0]) # Prints "1 2 4"
Ngoài ra có những cách khác để tạo array với giá trị mặc định
import numpy as np
a = np.zeros((2,2)) # Tạo array với tất cả các phần tử 0
print(a) # Prints "[[ 0. 0.]
# [ 0. 0.]]"
b = np.ones((1,2)) # Tạo array với các phần từ 1
print(b) # Prints "[[ 1. 1.]]"
c = np.full((2,2), 7) # Tạo array với các phần tử 7
print(c) # Prints "[[ 7. 7.]
# [ 7. 7.]]"
d = np.eye(2) # Tạo identity matrix kích thước 2*2
print(d) # Prints "[[ 1. 0.]
# [ 0. 1.]]"
e = np.random.random((2,2)) # Tạo array với các phần tử được tạo ngẫu nhiên
print(e) # Might print "[[ 0.91940167 0.08143941]
# [ 0.68744134 0.87236687]]"
2.4.1 Array indexing
Tương tự như list, numpy array cũng có thể slice. Tuy nhiên vì numpy array có nhiều chiều, nên khi
dùng slice phải chỉ định rõ chiều nào.
import numpy as np