2012-04-01 1 views
3

Numeric Python을 사용하고 있습니다. 불행히도 NumPy는 옵션이 아닙니다. 나는 다음과 같은 여러 배열이있는 경우 :Numeric Python을 사용하는 배열의 요소 중심 값과 백분위

a=Numeric.array(([1,2,3],[4,5,6],[7,8,9])) 
b=Numeric.array(([9,8,7],[6,5,4],[3,2,1])) 
c=Numeric.array(([5,9,1],[5,4,7],[5,2,3])) 

을 어떻게 같은, b와 c 배열 ...의 요소 현명한 평균을 나타내는 배열을 반환 할

array(([5,8,3],[5,5,6],[5,2,3])) 

그리고 더 일반적인 상황을 살펴보십시오 : n 개의 배열을 감안할 때, 각 원소의 백분위 수를 어떻게 구합니까? 예를 들어 10 개의 배열 중 30 번째 백분위 수를 나타내는 배열을 반환합니다. 당신의 도움을 주셔서 대단히 감사합니다!

+0

"NumPy는 옵션이 아닙니다"란 무엇을 의미합니까? 숫자 파이썬이 'numpy'가 아닌가? –

+0

나는 그들이 너무 별개라고 생각한다. import Numeric은 나를 위해 작동하지만 import numpy는 그렇지 않습니다. – steelymatt

답변

0

글쎄, 나는 Numeric에 정통하지 않지만, 순진한 해결책으로 시작해서 더 나아질 수 있는지 알아볼 것입니다.

이 목록 foox=0.3을 할 수의 30 퍼센트를 얻을 목록을 정렬하고 데이터의 경우 foo[int(len(foo)*x)]

에서 요소를 선택하려면 행렬에 넣어하려면, 그것을 바꾸어 정렬 각 행, 각 행의 중앙값을 구하십시오.

Numeric의 행렬은 numpy와 마찬가지로 두 개의 차원을 갖는 배열입니다.

나는 bar = Numeric.array(a,b,c)이 원하는 배열을 만들고, Numeric이 Numpy와 동일한 조각 기법을 사용하면 'bar [:, n]'으로 n 번째 열을 얻을 수 있다고 생각합니다.

foo = sorted(bar[:,n]) 
foo[int(len(foo)*x)] 

나는 당신을 돕기를 바랍니다.

1

2 차원 어레이의 스택을 하나의 3D 배열 d = Numeric.array([a, b, c])으로 결합한 다음 3 차원을 정렬합니다. 이후 연속적인 2 차원 평면은 순위 순서가되어 낮은, 높은, 4 분위수, 백분위 수 또는 중앙값의 평면을 추출 할 수 있습니다.

+0

나 한테이 편지를 쓸 수 있니? 나는 정말로 감사 할 것입니다. 감사. – steelymatt

+0

@steelymatt 나는 이것이 늦었다 고 알고있다. 그러나 나는 또 다른 질문에 대한 답으로 비슷한 3 개의 2 차원 어레이의 요소를 썼다. (http://stackoverflow.com/a/13753506/206192). – jozzas