Tôi có hai ma trận
a = np.matrix([[1,2], [3,4]])
b = np.matrix([[5,6], [7,8]])
và tôi muốn có được sản phẩm khôn ngoan [[1*5,2*6], [3*7,4*8]], bằng
[[5,12], [21,32]]
Tôi đã thử
print(np.dot(a,b))
và
print(a*b)
nhưng cả hai đều cho kết quả
[[19 22], [43 50]]
là sản phẩm ma trận, không phải là sản phẩm khôn ngoan. Làm cách nào để có được sản phẩm thông minh (còn gọi là sản phẩm Hadamard) bằng các chức năng tích hợp sẵn?
avà bmảng không? Ngoài ra, trong câu hỏi của bạn ở trên, bạn đang sử dụng xand yfor computation thay vì aand b. Đó chỉ là lỗi đánh máy?
@để nhân ma trận với các mảng nhiều mảng, có nghĩa là hoàn toàn không có lý do chính đáng để sử dụng ma trận trên mảng.
avà blà danh sách. Họ sẽ làm việc trong np.dot; nhưng không vào a*b. Nếu bạn sử dụng np.array(a)hoặc np.matrix(a), *hoạt động nhưng với kết quả khác.
avàbkhông phải kiểu ma trận của NumPy? Với lớp này,*trả về sản phẩm bên trong, không trả về phần tử. Nhưng đối vớindarraylớp thông thường ,*có nghĩa là sản phẩm khôn ngoan.