2017-09-15 6 views
0

을 찾았습니다. 간단한 질문처럼 보이는 답을 찾을 수 없었습니다.파이썬에서리스트의 n 번째 항목을 찾으십시오. 많은 검색을 한 후에

몬테카를로 시뮬레이션을 수행하고 결과를 중첩 목록에 저장하는 일부 코드가 있습니다. 여기에 내가 10 시험 시뮬레이션에서 생성 결과는 다음과 같습니다 : I 등등 붙어있어 내가 각 목록에서 0 번째 항목, 1 항목의 평균을 찾으려면, 그리고

[[1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1], [1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1], [1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1], [0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1], [1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0], [1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0], [1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1], [1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0], [1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1]] 

. 나는 일반적으로 이것을 위해 numpy.mean을 사용하지만, n 번째 항목 만 평균화하도록 지시하려면 어떻게해야합니까?

답변

2

당신은 axis=0np.mean를 사용할 수 있습니다

lst = [[1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1], [1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1], [1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1], [0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1], [1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0], [1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0], [1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1], [1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0], [1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1]] 
np.mean(lst, axis=0) 
# array([ 0.9, 1. , 0.8, 0.9, 0.6, 0.8, 0.5, 0.7, 0.8, 0.5, 0.7, 0.5, 0.6]) 
+1

쉽습니다. 감사! – Justin

0

내가 @Psidom는하지만 axis=1을 통해 제안 된 문제는 물론, 대답은 동일합니다 이해합니다. 또한 미리 수치가있는 배열로 변환해야 할 수도 있습니다.

lst = np.array([[1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1], 
       [1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1], # and so on...) 
np.mean(lst, axis=1)