Tôi có một danh sách 2D giống như
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
và tôi muốn chuyển đổi nó thành một mảng numpy 2d. Chúng ta có thể làm điều đó mà không cần phân bổ bộ nhớ như
numpy.zeros((3,3))
và sau đó lưu trữ các giá trị vào nó?
Tôi có một danh sách 2D giống như
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
và tôi muốn chuyển đổi nó thành một mảng numpy 2d. Chúng ta có thể làm điều đó mà không cần phân bổ bộ nhớ như
numpy.zeros((3,3))
và sau đó lưu trữ các giá trị vào nó?
Câu trả lời:
Chỉ cần chuyển danh sách đến np.array:
a = np.array(a)
Bạn cũng có thể tận dụng cơ hội này để đặt giá dtypetrị mặc định không như bạn mong muốn.
a = np.array(a, dtype=...)
chỉ cần sử dụng mã sau
c = np.matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
matrix([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
Sau đó, nó sẽ cung cấp cho bạn
bạn có thể kiểm tra hình dạng và kích thước của ma trận bằng cách sử dụng mã sau
c. hình dạng
c.ndim
np.array()thậm chí còn mạnh hơn những gì unutbu đã nói ở trên. Bạn cũng có thể sử dụng nó để chuyển đổi danh sách các mảng np thành một mảng dimention cao hơn, sau đây là một ví dụ đơn giản:
aArray=np.array([1,1,1])
bArray=np.array([2,2,2])
aList=[aArray, bArray]
xArray=np.array(aList)
Hình dạng của xArray là (2,3), nó là một mảng np chuẩn. Thao tác này tránh lập trình vòng lặp.