2014-10-31 1 views
1

크기 (45, 41) 인 "배열"이라는 배열이 있습니다. 범위는 (-200, 200) 값을 포함해야합니다. 그러나 일부 값은 값에 10,000을 추가하여 '태그 지정'되었습니다. 나는 그 요소를 detag하고 싶다 : 해당 요소가 8000보다 큰 경우 10000을 뺍니다 (8000보다 크면 태그가 있어야합니다).배열의 큰 요소에서만 10000을 뺍니다.

for i in 1:45 
    for j in 1:41 
     if array[i,j] > 8000 
      array[i,j] = array[i,j] - 10000 

어떤 도움이 크게 많이, 감사 감사하겠습니다 :

그래서 본질적으로, 의사로, 나는하고자!

편집 :

#Read file 
cubes=iris.load(pathfile) 
print cubes 
wind=cubes[0] 
print wind 

#Select the month 
wind_cut = wind[11, :, :, 0] 
array=wind_cut.data 

print array.shape 

for i in 1:45 
    for j in 1:41 
     if array[i,j] > 8000 
      array[i,j] = array[i,j] - 10000 

내가 할 모든 들여 쓰기 오류입니다 : 여기 내 전체 코드입니다. 나는 파이썬과이 사이트에 처음 왔어. 내가 멍청한 사람이라면 미안해.

+1

이러한 배열은 배열이 있습니까? –

+2

비 의사 코드는 어디에 있습니까? 뭐가 문제 야? –

+2

그래서 파이썬으로 표현하려고했을 때의 문제점은 무엇입니까? 너 시도 했잖아, 그렇지? – Cthulhu

답변

1

당신이 NumPy와 배열을 작업하는 경우,이 시도 : NumPy와에서

array[array>8000] -= 10000 
+0

정말 고마워요! 너무 단순 할 것이라고 기대하지 않았습니다! –

1

는 nparray 같은 조건> = N 우리가 지표로 사용할 수 있습니다 참/거짓의 배열을 만듭니다.

import numpy 
nparray = numpy.array(array) # reads a regular array and makes a numpy array 
nparray[nparray>=8000] -= 10000 # subtract 10000 from the elements over 8000 only 
# result in nparray 
+0

폴 감사합니다. –