Python

SciPy library reference

[NỘI DUNG BÀI VIẾT ĐƯỢC CẬP NHẬT LIÊN TỤC]

SciPy library là một bộ thư viện quan trọng của Python cung cấp các algorithms và functions dùng trong các lĩnh vực như: xử lý tín hiệu số, tối ưu, thống kê, v.v.. SciPy library kết hợp cùng NumPy, Matplotlib, IPython, pandas, SymPy, scikit-learn,… tạo thành hệ sinh thái dành cho tính toán khoa học cực kỳ mạnh mẽ.

Bài viết này sẽ là nơi tổng hợp các functions mình biết trong quá trình sử dụng SciPy library.


  • scipy.io.loadmat(file_name, mdict=None) – đọc dữ liệu từ file MATLAB.

+ file_name: str – đường dẫn đến file MATLAB cần đọc dữ liệu.
+ mdict: dict, optional – dictionary được dùng để chèn dữ liệu của file MATLAB vào.

Return: dict – một dictionary có keys là tên các biến và values là các matrix có trong file MATLAB.

  • scipy.io.savemat(file_name, mdict) – ghi dữ liệu vào file MATLAB.

+ file_name: str – đường dẫn đến file MATLAB cần ghi dữ liệu.
+ mdict: dict – dictionary chứa dữ liệu cần ghi vào file MATLAB.

Example:

from scipy.io import loadmat, savemat
import numpy as np

# chuẩn bị dữ liệu để ghi vào file MATLAB
array = np.arange(20).reshape(4,5)
mdict = {"arange_20": array}

# ghi dữ liệu vào file matfile.mat
savemat("C:\\abc\\xyz\\matfile.mat")

# đọc dữ liệu từ file matfile.mat và lưu vào biến data
data = loadmat("C:\\abc\\xyz\\matfile.mat")

  • scipy.spatial.distance.cdist(XA, XB, metric=’euclidean’) – tính toán khoảng cách giữa từng cặp phần tử của XA và XB

XA: ndarray 2-d có kích thước mA x n, trong đó: mA là số vector có trong XA, n là kích thước của từng vector;
XB: ndarray 2-d có kích thước mB x n, trong đó: mB là số vector có trong XB, n là kích thước của từng vector;
metric: str – distance metric được sử dụng, bao gồm: ‘braycurtis’, ‘canberra’, ‘chebyshev’, ‘cityblock’, ‘correlation’, ‘cosine’, ‘dice’, ‘euclidean’, ‘hamming’, ‘jaccard’, ‘kulsinski’, ‘mahalanobis’, ‘matching’, ‘minkowski’, ‘rogerstanimoto’, ‘russellrao’, ‘seuclidean’, ‘sokalmichener’, ‘sokalsneath’, ‘sqeuclidean’, ‘wminkowski’, ‘yule’.

Return: ndarray có kích thước mA x mB.

Example:

>>> from scipy.spatial.distance import cdist
>>> import numpy as np
>>> A = np.array([[1,1],[2,2],[3,3]])
>>> B = np.array([[-1,-1],[-2,-2],[-3,-3]])
>>> cdist(A,B)
array([[2.828, 4.242, 5.656],
       [4.242, 5.656, 7.071],
       [5.656, 7.071, 8.485]])

  • scipy.sparse.csr_matrix((data, (row_index, col_index)), [shape=(M, N)]) – tạo Compressed Sparse Row matrix. Hữu ích khi lưu trữ ma trận với đa số các phần tử là 0.

+ data: ndarray, list – các giá trị cần đưa vào ma trận;
+ row_index: ndarray, list – chỉ số của các hàng chứa dữ liệu;
+ col_index: ndarray, list – chỉ số của các cột chứa dữ liệu;
+ shape: list, tuple – kích thước của ma trận đầy đủ.

Return: sparse matrix

Example:

>>> from scipy.sparse import csr_matrix
>>> data = [1,2,3,4]
>>> row = [3,2,1,0]
>>> col = [0,1,2,3]
>>> matrix = csr_matrix((data, (row, col)), shape=(4,4))
>>> matrix.toarray()
array([[0, 0, 0, 4],
       [0, 0, 3, 0],
       [0, 2, 0, 0],
       [1, 0, 0, 0]])
>>> matrix.tocoo().col
array([3, 2, 1, 0], dtype="int32")
>>> matrix.tocoo().row
array([0, 1, 2, 3], dtype="int32")

  • scipy.stats.mode(array, axis=0) – Trả về hai array chứa các giá trị mốt (mode) theo trục axis và tần suất xuất hiện của chúng. Nếu có nhiều giá trị mốt, giá trị nhỏ nhất sẽ được trả về.

+ array: ndarray – input;
+ axis: int

Return:
+ mode: ndarray – mảng chứa các giá trị mốt;
+ count: ndarray – mảng chứa tần suất xuất hiện của các giá trị mốt.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s