2014-01-18 3 views
1

아래와 같이 n 차원 numpy 배열이 있다고 가정합니다. 0으로 중첩 된 arrary의 마지막 요소에서 255를 모두 변경할 수있는 방법이 있습니까? 감사numpy ndarrary의 값 바꾸기

[ [1,2,3,255], [1,2,3,234], [1,2,3,255], ]

답변

1
>>> a = np.array([[1,255,3,255], [1,2,3,234], [1,2,3,255],]) 
>>> a 
array([[ 1, 255, 3, 255], 
     [ 1, 2, 3, 234], 
     [ 1, 2, 3, 255]]) 

>>> a[a[:,-1] == 255, -1] = 0 # <--- 
>>> a 
array([[ 1, 255, 3, 0], 
     [ 1, 2, 3, 234], 
     [ 1, 2, 3, 0]]) 
+0

안녕 배열의 마지막 요소로 제한해야합니다. 255 배열의 마지막 인덱스에 있습니까? – John

+0

@ JohnZ, 당신은 명확하게 질문에 예제 배열을 수정하는 것이 좋습니다. 예 :'[[1,255,3,255], [1,2,3,234], [1,2,3,255]] – falsetru

1

부울 배열에 의해 값을 변경하지 않고, 마지막 열 값을 포함하는 도면을 작성

import numpy as np 
a = np.array([[255,2,3,255], [1,2,3,234], [1,2,3,255]]) 
b = a[:, -1] 
b[b==255] = 0 
print a 

결과 :

array([[255, 2, 3, 0], 
     [ 1, 2, 3, 234], 
     [ 1, 2, 3, 0]]) 
+0

죄송합니다. 우연히 대답을 편집했습니다. – falsetru