2017-01-04 12 views
0

저는 2D Numpy 배열의 값을 2D FiPy 그리드로 바꿔야 시스템을 해결할 수 있습니다. 다음과 같이FiPy 초기 모눈 값 설정

내 코드는 다음과 같습니다

tmpSource 및 tmpSink이 NumPy와 배열 말한다
for x in range(0, size[0]): 
      for y in range(0, size[1]): 
       source.setValue(tmpSource.getGrid()[x][y], where=(X < x + 1) & (X > x) & (Y > y) & (Y < y + 1)) 
       sink.setValue(tmpSink.getGrid()[x][y], where=(X < x + 1) & (X > x) & (Y > y) & (Y < y + 1)) 

.

이 방법이 효과가 있지만 실행 속도가 매우 느립니다. 누구나 빨리 할 수있는 대체 접근법에 대한 조언이 있습니까?

감사합니다.

답변

2

"바꾸기"라고 말하지만 축 또는 데이터 범위를 바꾸지 않고 간단한 데이터 전송 인 것처럼 보입니다. 잘못된 단어의 선택, 내 사과 :) 그리고 솔루션,

source.value = tmpSource.getGrid().flatten() 
sink.value = tmpSink.getGrid().flatten() 
+0

네 말이 맞아 전치되었다하십시오 Grid2D에 정의 된 FiPy CellVariable로 2D NumPy와 배열에서 값을 이동하면 배열을 병합 한 단순해야한다 작품, 고마워! – MrD