1. Hàm numpy.asarray: Xây dựng mảng từ dữ liệu tồn tại
1.1 Chức năng chính
Tương tự numpy.array, chuyển đổi danh sách, tuple hoặc mảng sẵn có thành đối tượng ndarray trong NumPy. Hàm yêu cầu ít tham số hơn numpy.array với khả năng chính là tạo mảng từ dữ liệu nhập vào.
1.2 Cú pháp và tham số
| Tham số | Mô tả |
|---|---|
| a | Dữ liệu nhập bao gồm: danh sách, tuple, đa dạng mảng |
| dtype | Xác định kiểu dữ liệu mảng (tùy chọn) |
| order | Thứ tự lưu trữ trong bộ nhớ: "C" (hàng ưu tiên), "F" (cột ưu tiên) |
1.3 Ví dụ minh họa
import numpy as np
data = (4, 5, 6)
arr = np.asarray(data)
print(arr)
Kết quả: [4 5 6]
import numpy as np
source = [(10, 20), (30, 40, 50)]
result = np.asarray(source)
print(result)
Kết quả: [(10, 20) (30, 40, 50)] (dtype=object)
import numpy as np
input_data = [7, 8, 9]
converted = np.asarray(input_data, dtype=complex)
print(converted)
Kết quả: [7.+0.j 8.+0.j 9.+0.j]
2. Hàm numpy.frombuffer: Tạo mảng từ vùng đệm
2.1 Cơ chế hoạt động
Đọc dữ liệu từ bộ đệm dưới dạng luồng để tạo mảng ndarray động, cho phép chỉ định vị trí bắt đầu và lượng dữ liệu.
2.2 Tham số sử dụng
| Tham số | Ý nghĩa |
|---|---|
| buffer | Đối tượng bộ đệm có thể đọc (ví dụ: byte string) |
| dtype | Kiểu dữ liệu phần tử bắt buộc |
| count | Số lượng phần tử đọc (mặc đinh: -1) |
| offset | Vị trí bắt đầu đọc (mặc định: 0) |
2.3 Minh họa ứng dụng
import numpy as np
byte_data = b'Python'
buffer_arr = np.frombuffer(byte_data, dtype='S1')
print(buffer_arr)
Kết quả: [b'P' b'y' b't' b'h' b'o' b'n']
3. Hàm numpy.fromiter: Xây dựng mảng từ đối tượng có thể lặp
3.1 Mục đích chuyên biệt
Chuyển đổi các đối tượng có thể lặp thành mảng NumPy một chiều, hỗ trợ bộ tạo và bộ lặp.
3.2 Cấu trúc hàm
iterable: Bắt buộc
dtype: Xác định kiểu dữ liệu
count: Số lượng phần tử (tùy chọn)
3.3 Ví dụ thực tiễn
import numpy as np
iter_obj = iter(range(3))
num_arr = np.fromiter(iter_obj, dtype=int)
print(num_arr)
Kết quả: [0 1 2]
4. So sánh np.array và np.asarray
4.1 Điểm tương đồng
Khi nguồn dữ liệu không phải ndarray, cả hai tạo mảng mới độc lập với dữ liệu gốc.
4.2 Khác biệt cơ bản
| Hàm | Hành vi khi nhập ndarray |
|---|---|
| np.array | Tạo bản sao độc lập |
| np.asarray | Sử dụng tham chiếu đến mảng gốc |
4.3 Kiểm tra khác biệt
import numpy as np
origin = np.array([15, 25, 35])
copy_arr = np.array(origin)
ref_arr = np.asarray(origin)
origin[2] = 999
print("Bản gốc:", origin)
print("Bản sao:", copy_arr)
print("Tham chiếu:", ref_arr)
4.4 Hướng dẫn sử dụng
- Ưu tiên
np.arraykhi cần độc lập dữ liệu - Chọn
np.asarrayđể tiết kiệm bộ nhớ với mảng lớn