반응형
두 개의 행렬이 있습니다
a = np.matrix([[1,2], [3,4]])
b = np.matrix([[5,6], [7,8]])
요소 별 곱인 [[1 * 5,2 * 6], [3 * 7,4 * 8]]
을 얻고 싶습니다.
[[5,12], [21,32]]
나는 시도했다
print(np.dot(a,b))
과
print(a*b)
하지만 둘 다 결과를 제공합니다
[[19 22], [43 50]]
이것은 요소 별 곱이 아니라 행렬 곱입니다. 내장 함수를 사용하여 요소 별 제품 (일명 Hadamard 제품)을 얻으려면 어떻게해야합니까?
해결 방법
import numpy as np
a = np.array([[1,2],[3,4]])
b = np.array([[5,6],[7,8]])
np.multiply(a,b)
결과
array([[ 5, 12],
[21, 32]])
그러나 실제로는 matrix
대신 array
를 사용해야합니다. matrix
객체에는 일반 ndarray와 모든 종류의 끔찍한 비 호환성이 있습니다. ndarrays를 사용하면 요소 별 곱셈에 *
를 사용할 수 있습니다.
a * b
a @ b # matrix multiplication
참조 페이지 https://stackoverflow.com/questions/40034993
반응형
'파이썬' 카테고리의 다른 글
파이썬 Keras 모델에서 tensorflow 출력 노드의 이름을 어떻게 얻습니까? (0) | 2020.10.28 |
---|---|
파이썬 PySpark에서 스크립트를 실행하는 방법 (0) | 2020.10.28 |
파이썬에서 좋은 __hash__ 함수를 구현하는 방법 (0) | 2020.10.28 |
파이썬 AttributeError : 'str'개체에 'append'속성이 없습니다. (0) | 2020.10.28 |
파이썬 팬더는 groupby의 평균을 얻습니다 (0) | 2020.10.28 |
댓글