2017-11-24 1 views
0

FeatureClassToNumPyArray를 사용했습니다. 이 함수는 FeatureClass (테이블)로부터 numpy 배열을 생성합니다. 첫 번째 매개 변수는 테이블 이름을 지정합니다. 다른 매개 변수는 배열로 "가져온"열 이름입니다.1d numpy 배열을 2d numpy 배열로 변환하는 방법

arr = arcpy.da.FeatureClassToNumPyArray("lyr_fixpoints", ('land_type', 'asset_cat', 'name', 'maintenance'), null_value=-999) 
print arr 

다음과 같은 1D 배열 수 : 2 차원 배열 내 추가 작업에 매우 적합하기 때문

[(5, 0, 380, 3) (1, 4, 369, 3) (5, 0, 421, 2) (0, 7, 425, 1)] 

가 지금은,이 형태의 2 차원 배열로 배열을 변환 할를.

[[5 0 380 3] [1 4 369 3] [5 0 421 2] [0 7 425 1]] 

재구성을 시도했지만 작동하지 않았습니다. 누군가 나를 도울 수 있습니까?

답변

0

첫 번째 배열이 이미 2D 인 것처럼 보입니다! 행을 나눌 위치를 표시하기 위해 괄호 만 넣으면 여기에 뭔가가 있습니다.

이 작동해야합니다. 그렇지 않다면, arr이 실제로 numpy 배열인지 확인하십시오. 확실하지 않은 경우 다음을 사용할 수 있습니다.

arr = np.array(arr) 
arr.reshape(4, 4) 
+0

두 문장 모두 시도한 결과이 오류 메시지가 나타납니다. ValueError : 새 배열의 전체 크기는 변경되지 않아야합니다. arr.ndim의 출력이 1이고 len (arr)이 4이기 때문에 첫 번째 Array가 1d라고 생각합니다. – scs

+0

arr.ndim이 1이라는 것은 혼란 스럽습니다. 'a = np.array ([(5, 0) , 380, 3), (1, 4, 369, 3), (5, 0, 421, 2), (0, 7, 425, 1)]). 또한 len (arr)은 4 요소가 4 목록이므로 각 4 길이이므로 4가 될 것입니다. – jufer002

0

이제는 내 문제에 대한 해결책을 찾았습니다. 이 코드는 내 1 차원 배열 (featureclasstonumpyarray에서)을 2 차원 배열로 변환합니다.

arr = np.array([[x for x in y] for y in arr]) 
관련 문제