배열이 될 numpy에서 두 벡터의 행렬 곱셈을 수행하려고합니다.두 벡터의 행렬 곱셈
예
바와 같이 형상으로부터 알 수
In [108]: b = array([[1],[2],[3],[4]])
In [109]: a =array([1,2,3])
In [111]: b.shape
Out[111]: (4, 1)
In [112]: a.shape
Out[112]: (3,)
In [113]: b.dot(a)
ValueError: objects are not aligned
는, 어레이 A는 실제로 매트릭스 아니다. 캐치는 이런 식으로
a
을 정의하는 것입니다. 행렬의 필드 또는 열 등의 벡터를 획득 할 때
In [114]: a =array([[1,2,3]])
In [115]: a.shape
Out[115]: (1, 3)
In [116]: b.dot(a)
Out[116]:
array([[ 1, 2, 3],
[ 2, 4, 6],
[ 3, 6, 9],
[ 4, 8, 12]])
방법은 동일한 결과를 달성 하는가?
In [137]: mat = array([[ 1, 2, 3],
[ 2, 4, 6],
[ 3, 6, 9],
[ 4, 8, 12]])
In [138]: x = mat[:,0] #[1,2,3,4]
In [139]: y = mat[0,:] #[1,2,3]
In [140]: x.dot(y)
ValueError: objects are not aligned
([X]) 트랜스()', 당신은 단지'x.reshape (-1,1)을 할 수있는'또는'X [..., np.newaxis]', 어느 쪽도 새로운 배열을 생성하지 않습니다. – askewchan