Giới thiệu về Phân tích Dữ liệu
Phân tích dữ liệu là quá trình sử dụng các phương pháp thống kê để xử lý và khám phá thông tin từ một tập hợp dữ liệu lớn. Quá trình này giúp tìm ra các mẫu, xu hướng và mối quan hệ ẩn giấu.
Các Công cụ Phổ Biến cho Phân tích Dữ liệu trong Python
Trong Python, ba thư viện chính được sử dụng cho phân tích dữ liệu là:
- NumPy: Thư viện hỗ trợ mảng đa chiều và các phép toán số học.
- Pandas: Cung cấp cấu trúc dữ liệu linh hoạt và công cụ phân tích dữ liệu mạnh mẽ.
- Matplotlib: Thư viện vẽ biểu đồ phổ biến.
Tìm hiểu về NumPy
NumPy (Numerical Python) là một thư viện mở rộng của Python, cung cấp khả năng xử lý mảng đa chiều hiệu quả cùng với các hàm toán học chuyên dụng.
Tạo Mảng với NumPy
Để bắt đầu, bạn cần cài đặt NumPy bằng lệnh sau:
pip install numpy
Dưới đây là cách tạo mảng một chiều và hai chiều:
import numpy as np
# Tạo mảng một chiều
arr1 = np.array([1, 2, 3, 4, 5])
print(arr1)
# Tạo mảng hai chiều
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
print(arr2)
Sử dụng Các Hàm Xây Dựng Trực Tiếp
Bên cạnh việc tạo mảng thủ công, NumPy còn cung cấp nhiều hàm tiện ích:
- np.linspace: Tạo dãy số có khoảng cách đều.
- np.arange: Tạo mảng với bước nhảy xác định.
- np.random.randint: Tạo mảng ngẫu nhiên với giá trị nguyên.
import numpy as np
# Sử dụng np.linspace
arr_linspace = np.linspace(0, 10, num=5)
print(arr_linspace)
# Sử dụng np.arange
arr_arange = np.arange(0, 10, 2)
print(arr_arange)
# Sử dụng np.random.randint
random_arr = np.random.randint(0, 100, size=(3, 4))
print(random_arr)
Vật Đối Tượng ndarray
Một đối tượng trọng tâm trong NumPy là ndarray, đại diện cho mảng đa chiều. Dưới đây là một số thuộc tính và phương thức cơ bản:
- dtype: Kiểu dữ liệu của phần tử.
- shape: Kích thước của mảng.
- ndim: Số chiều của mảng.
- size: Tổng số phần tử.
- reshape: Thay đổi kích thước mà không thay đổi nội dung.
import numpy as np
# Tạo mảng ví dụ
arr = np.random.randint(1, 10, size=(3, 4))
# In các thuộc tính
print("Dạng:", arr.shape)
print("Kiểu dữ liệu:", arr.dtype)
print("Số chiều:", arr.ndim)
print("Tổng số phần tử:", arr.size)
# Reshape mảng
reshaped_arr = arr.reshape((2, 6))
print(reshaped_arr)
Các Phép Toán Cơ Bản trên Mảng
NumPy hỗ trợ nhiều phép toán như chỉ mục, cắt lát, nối và sắp xếp.
Chỉ Mục và Cắt Lát
import numpy as np
# Tạo mảng hai chiều
arr = np.random.randint(1, 10, size=(4, 5))
# Chỉ mục đơn giản
element = arr[1, 2]
print(element)
# Cắt lát hàng và cột
rows = arr[:2]
columns = arr[:, :3]
print(rows)
print(columns)
Nối Mảng
Phương thức concatenate cho phép nối nhiều mảng theo một trục nhất định:
import numpy as np
# Tạo hai mảng
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6]])
# Nối theo hàng
result = np.concatenate((arr1, arr2.T), axis=1)
print(result)
Xử Lý Hình Ảnh với Matplotlib
Hình ảnh có thể được xử lý dưới dạng mảng NumPy. Ví dụ sau minh họa cách thao tác với hình ảnh:
import matplotlib.pyplot as plt
import numpy as np
# Đọc hình ảnh
img = plt.imread('image.jpg')
# Hiển thị hình ảnh gốc
plt.imshow(img)
plt.show()
# Chuyển đổi màu sắc
inverted_img = 255 - img
plt.imshow(inverted_img)
plt.show()
# Cắt hình ảnh
cropped_img = img[100:300, 200:400]
plt.imshow(cropped_img)
plt.show()
# Nối hình ảnh
doubled_img = np.hstack((img, img))
plt.imshow(doubled_img)
plt.show()