2014-03-13 2 views
2

배열의 목록에 배열의 현재 위치에서 항목을 삭제하기 .
이것은 각 배열의 0 번째 인덱스 (첫 번째 배열 제외)가 0 인 배열의 목록을 제공합니다. 자리 표시 자 0이없는 배열 목록을 얻으려면이 0을 제자리에서 삭제하려면 어떻게합니까? 내가 반복하지 않기 때문에 각 배열에 삭제 된 0을 새 배열 목록에 추가하기 때문에 내부에서 말합니다.는 어떻게 다음 줄을 사용

당신은 0을 제거하기 위해 몇 가지 사전 처리를 사용할 수 있습니다
+0

중첩 된 목록의 길이는 모두 같은데 (첫 번째 제외)? 그렇다면 첫 번째에 '0'을 추가하고 2 차원 배열로 캐스팅 한 다음 첫 번째 열을 삭제할 수 있습니다. – hpaulj

+0

나는 그것에 대해 생각했다. 불행하게도. 궁극적으로 출력을 각 열이이 목록의 배열 인 DataFrame으로 만들고 싶습니다. 그 형식에 있다면, 내가 제안한 것을 할 수 있어야한다고 생각하지만, 여전히 df 형식으로 들어가기 위해 노력 중입니다. – user3416961

+1

'[array_list에있는 항목에 대해 [item [1 :]]'반복 및 수행 중입니다. 빠른. 배열을 복사하지 않습니다. 그것은 기본적으로 당신이 요구하는 것입니다. 당신은 실제로 numpy 배열에서 항목을 삭제할 수 없습니다. 복사하지 않고 첫 번째 항목을 제외한 모든 것을 보려면 'item [1 :]'(위와 동일)을 수행하면됩니다. –

답변

1

, 여기에 예입니다

import numpy as np 
a = np.random.randint(0, 5, 100) 
idx = np.where(a == 0)[0] 

np.split(a, idx) 

출력 :

[array([4, 3]), 
array([0, 3, 1, 1]), 
array([0, 4]), 
array([0]), 
array([0, 1, 2, 4]), 
array([0, 4, 2, 2, 3, 1]), 
array([0, 2, 4, 3]), 
array([0, 2, 2, 4]), 
array([0, 3, 2, 1, 2, 4, 1, 2]), 
array([0]), 
array([0]), 
array([0, 1, 3]), 
array([0]), 
array([0, 1, 3, 2, 4]), 
array([0, 3, 3]), 
array([0, 3]), 
array([0, 3, 4, 1, 2, 3, 3, 4, 3, 4, 2, 1]), 
array([0]), 
array([0, 3, 2]), 
array([0]), 
array([0, 4, 1, 4, 2, 3, 1]), 
array([0, 4]), 
array([0]), 
array([0]), 
array([0, 3, 4, 2, 3]), 
array([0, 4, 4, 3, 3, 3, 1]), 
array([0, 2, 4, 1]), 
array([0, 4, 2, 2]), 
array([0])] 

제거 a의 모든 제로, 새로운 인덱스 계산 :

idx2 = idx - np.arange(len(idx)) 
b = np.delete(a, idx) 
np.split(b, np.unique(idx2)) 

다음은 출력입니다.

[array([4, 3]), 
array([3, 1, 1]), 
array([4]), 
array([1, 2, 4]), 
array([4, 2, 2, 3, 1]), 
array([2, 4, 3]), 
array([2, 2, 4]), 
array([3, 2, 1, 2, 4, 1, 2]), 
array([1, 3]), 
array([1, 3, 2, 4]), 
array([3, 3]), 
array([3]), 
array([3, 4, 1, 2, 3, 3, 4, 3, 4, 2, 1]), 
array([3, 2]), 
array([4, 1, 4, 2, 3, 1]), 
array([4]), 
array([3, 4, 2, 3]), 
array([4, 4, 3, 3, 3, 1]), 
array([2, 4, 1]), 
array([4, 2, 2]), 
array([], dtype=float64)] 
+0

pandas DataFrames로 끝내게되었습니다. 내가 쪼개지는 일과 청소를 모두 할 필요는 없다는 것을 알았지 만, 도움에 감사 드리며 문제에 대한 좋은 해결책! – user3416961

관련 문제