Mảng có cấu trúc (Structured arrays)
Mảng có cấu trúc là các ndarray có kiểu dữ liệu là sự kết hợp của các kiểu dữ liệu đơn giản hơn được tổ chức thành một chuỗi các trường có tên.
Giới thiệu
x = np.array([('Rex', 9, 81.0), ('Fido', 3, 27.0)],
dtype=[('name', 'U10'), ('age', 'i4'), ('weight', 'f4')])
# x là một mảng một chiều có độ dài là haiBạn có thể truy cập và sửa đổi các trường riêng lẻ của mảng có cấu trúc bằng cách lập chỉ mục với tên trường:
x['age']
# array([9, 3], dtype=int32)Khởi tạo kiểu dữ liệu có cấu trúc
Kiểu dữ liệu có cấu trúc có thể được tạo bằng hàm numpy.dtype.
1. Một danh sách các tuple, mỗi tuple cho một trường
Mỗi tuple có dạng (tên_trường, kiểu_dữ_liệu, hình_dạng).
np.dtype([('x', 'f4'), ('y', np.float32), ('z', 'f4', (2, 2))])
# dtype([('x', '<f4'), ('y', '<f4'), ('z', '<f4', (2, 2))])2. Một chuỗi các đặc tả dtype được phân tách bằng dấu phẩy
Trong cách viết tắt này, bất kỳ đặc tả dtype dạng chuỗi nào cũng có thể được sử dụng và phân tách bằng dấu phẩy.
np.dtype('i8, f4, S3')
# dtype([('f0', '<i8'), ('f1', '<f4'), ('f2', 'S3')])3. Một từ điển (dictionary) của các mảng tham số trường
Từ điển có hai khóa bắt buộc là ‘names’ và ‘formats’.
np.dtype({'names': ['col1', 'col2'], 'formats': ['i4', 'f4']})
# dtype([('col1', '<i4'), ('col2', '<f4')])Last updated on
Python