2012-11-07 4 views
2

내가 행렬을 말해봐 얻으십시오 :NumPy와의 다차원 배열로 된 부분 벡터를 할당

ValueError: output operand requires a reduction, but reduction is not enabled 

왜 작동하지 않습니까?

a[:,0] = 1 

broadcasting가 세부 사항을 처리합니다 :

+2

기존 답변이 맞습니다. 그러나 "왜 이것이 작동하지 않는가"에 대한 질문에 대답하기 위해, nRows x 1 어레이를 단일 행으로 밀어 넣으려고합니다. 즉, 단일 열, 다중 행 배열을 한 행에 맞추려고합니다. 어쨌든 그렇게하지 마십시오. 또한 여러 [] [] 색인 대신 쉼표 색인을 사용합니다. 후자는 []의 추가 쌍마다 낭비적인 중간 배열 객체를 만듭니다. – Iguananaut

답변

5

뿐만 쉬워야한다.

>>> a = np.zeros((10,10)) 
>>> a 
array([[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], 
     [ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], 
     [ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], 
     [ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], 
     [ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], 
     [ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], 
     [ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], 
     [ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], 
     [ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], 
     [ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]]) 
>>> a[:,0]=1 
>>> a 
array([[ 1., 0., 0., 0., 0., 0., 0., 0., 0., 0.], 
     [ 1., 0., 0., 0., 0., 0., 0., 0., 0., 0.], 
     [ 1., 0., 0., 0., 0., 0., 0., 0., 0., 0.], 
     [ 1., 0., 0., 0., 0., 0., 0., 0., 0., 0.], 
     [ 1., 0., 0., 0., 0., 0., 0., 0., 0., 0.], 
     [ 1., 0., 0., 0., 0., 0., 0., 0., 0., 0.], 
     [ 1., 0., 0., 0., 0., 0., 0., 0., 0., 0.], 
     [ 1., 0., 0., 0., 0., 0., 0., 0., 0., 0.], 
     [ 1., 0., 0., 0., 0., 0., 0., 0., 0., 0.], 
     [ 1., 0., 0., 0., 0., 0., 0., 0., 0., 0.]]) 
관련 문제