0

numpy에서 행렬 곱셈을 이해하는 데 문제가 있습니다. 예를 들어 I가 다음의 행렬 (2D NumPy와 배열)탁솔한 행렬 곱셈 동작

a = [ [ 1. 1. ] 
     [ 1. 2. ] 
     [ 1. 3. ] ] 

다음 행 벡터 세타 : 쎄타와 안으로 세타 변환하는 것 곱하는

theta = [ 1. 1. ] 

유일한 방법 열 벡터는 먼저 다음 I는 결과를 얻을 것이다 :

result = [ [ 2. ] 
      [ 3. ] 
      [ 4. ] ] 

I는 (변환없이) 행렬과 열 벡터를 곱

result = [ 2. 3. 4. ] 

어떻게 이런 일이 가능하다조차 :

result = np.dot(a,theta) 

나는이 얻을? 나는 행렬을 변형시키지 않았다. 이 numpy 곱셈이 어떻게 작동하는지 알려주실 수 있습니까? 감사합니다.

+1

doc 후 HTTPS 읽기 (배열은 모든 사이즈에에 국한되지 않습니다 동안 행렬은 2-D입니다) : //docs.scipy .org/doc/numpy/reference/generated/numpy.dot.html – Kasramvd

+1

인용문 : 2 차원 배열의 경우 행렬 곱셈과 동일합니다. – Cyberlander

답변

1

아니요, 숫자 배열을 다른 numpy 배열 (벡터가있는 행렬이 아님)로 곱하고 있습니다. 이것은 본질적으로 수적으로 배열이 행렬과 같지 않기 때문입니다. 그리고 내트 (dot) 제품도 그런 식으로 취급합니다.

배열을 작성하고 곱하면 그 이유를 알 수 있습니다. 배열 'a'의 각 행에 대한 벡터 ('theta')의 점 곱 (요소 별 곱하기)입니다.

PS :

또한

, this answer에서 봐 주시기 바랍니다 및 this excellent answer