Bài 14. numpy and pandas
Tác giả: Trần Thanh Tùng
1. Numpy - thư viện tính toán trong Python
1.1. Lợi ích khi sử dụng numpy
- Tốc độ nhanh
- Giảm vòng lặp
- Code rõ ràng hơn
- Tăng chất lượng Code
1.2. Cài đặt numpy
pip install numpy
1.3. Numpy cơ bản
Khởi tạo 1 numpy array
import numpy as np
# Numpy array
arr = np.array([
[1, 2, 3],
[4, 5, 6],
[6, 7, 9],
])
print(arr)
"""
Output:
[[1 2 3]
[4 5 6]
[6 7 9]]
"""
Thao tác với numpy array
# Get row
print(arr[0]) # [1 2 3]
# Get column
print(arr[:,0]) # [1 4 6]
# Get element
print(arr[0, 0]) # 1
# Get shape
print(arr.shape) # (3, 3)
# Get size
print(arr.size) # 9
Tính toán trên numpy array
# Calculation
# By table
print(arr.sum()) # 43
# By dimension
print(arr.sum(axis=0)) # [11 14 18]
print(arr.sum(axis=1)) # [ 6 15 22]
# Some calculation: sum, max, min, argmin, argmax, mean, var, ...
Một số numpy array đặc biệt
# Numpy array with all element equal 0
zerosArr = np.zeros((2, 3), dtype=int)
print(zerosArr)
"""
Output:
[[0 0 0]
[0 0 0]]
"""
# Numpy array with all element equal 1
onesArr = np.ones((2,3), dtype=int)
print(onesArr)
"""
Output:
[[1 1 1]
[1 1 1]]
"""
Gán giá trị cho numpy array
arr = np.array([
[1, 2, 3],
[4, 5, 6],
[6, 7, 9],
])
arr[0,0] = 10
print(arr)
"""
Output:
[[10 2 3]
[ 4 5 6]
[ 6 7 9]]
"""
Vòng lặp trong numpy array
# Loop through numpy array
arr = np.array([
[1, 2, 3],
[4, 5, 6],
[6, 7, 9],
])
for i in range(arr.shape[0]):
for j in range(arr.shape[1]):
print(arr[i, j])
"""
Output:
1
2
3
4
5
6
6
7
9
"""
2. Pandas - thư viện xử lý dữ liệu dạng bảng
2.1. Cài đặt pandas
pip install pandas
2.2. Pandas cơ bản
Khởi tạo DataFrame
import pandas as pd
# DataFrame
loveDf = pd.DataFrame({
'I': ['love','you','so','much'],
'But': ['you','dont','love','me'],
'So': ['I','am','broken','huhu']})
print(loveDf)
"""
Output:
I But So
0 love you I
1 you dont am
2 so love broken
3 much me huhu
"""
Lấy dữ liệu cột
# Get column
print(loveDf['I'])
"""
Output:
0 love
1 you
2 so
3 much
Name: I, dtype: object
"""
Nên đặt tên cột là một từ tiếng Anh không cách để lấy dữ liệu cột nhanh chóng bằng cách sau:
print(loveDf.But)
"""
Output:
0 you
1 dont
2 love
3 me
Name: But, dtype: object
"""
Lấy dữ liệu hàng
# Get row
print(loveDf.iloc[1])
"""
Output:
I you
But dont
So am
Name: 1, dtype: object
"""
Thao tác cơ bản với DataFrame
# Get shape
print(loveDf.shape) # (4, 3)
# Add new column
loveDf['And'] = ['I', 'will', 'forget', 'you']
print(loveDf)
"""
Output:
I But So And
0 love you I I
1 you dont am will
2 so love broken forget
3 much me huhu you
"""
# Change column order
loveDf = loveDf[['I', 'But', 'And', 'So']]
print(loveDf)
"""
Output:
I But And So
0 love you I I
1 you dont will am
2 so love forget broken
3 much me you huhu
"""
# Read dataframe from file
"""
Example, boysData.csv has the following content:
id, name, age
1, Bob, 10
2, Kenvin, 12
3, Otto, 9
"""
boysDf = pd.read_csv('boysData.csv')
print(boysDf)
"""
Output:
id name age
0 1 Bob 10
1 2 Kenvin 12
2 3 Otto 9
"""
# Save dataframe
boysDf.to_csv('newBoysData.csv', index=False)
# Some kind of file pandas can read and save: .csv, .xlsx, .json, .xml, ...
Nội dung trên chỉ là tóm tắt, học viên cần đọc các tài liệu liệt kê trong phần tài liệu tham khảo dưới đây.
Tài liệu tham khảo
Tài liệu chính
Tài liệu bổ sung
- Hướng dẫn sử dụng numpy trên trang web Real Python
- Hướng dẫn sử dụng pandas trên trang web Real Python