텍스트 파일에서 목록을 읽고이 목록의 표준 편차를 사용하면 표준 편차 밖의 값을 만드는 방법을 알고 싶습니다. 평균으로부터 표준 편차로 사용되는 평균.목록의 값이 특정 값 이상인 경우 목록의 값을 변경하십시오.
이a=np.genfromtxt('meanvals2.txt').T[1]
b=np.std(a)
c=np.mean(a)
ok=(a>(c-b))*(a<(c+b)) # within 1st deviation
h=a[ok]
print h
이 코드는 하나의 표준 편차를 벗어난 값을 삭제 : 여기에 내가 함께 일하고 내 코드의 일부이다. 내가 어떻게 그것을 바꿀 것인가 삭제 된 값은 평균으로부터 1 표준 편차를 벗어나지 만 데이터 세트에서 유지됩니까?
예를 들어 내 목록이 [1,2,3,4,5,20] 인 경우 표준 편차는 7.08이고 평균은 5.88입니다. 그래서 평균에서 벗어난 한 표준 편차는 12.96 또는 -1.2입니다. 따라서 현재의 코드는 목록을 [1,2,3,4,5]가되도록 모든 숫자를 배제 할 것이지만 목록을 실제로 읽으려고합니다 [ 1,2,3,4,5,12.96]. 물론
a = np.genfromtxt('meanvals2.txt').T[1]
b = np.std(a)
c = np.mean(a)
#step 1, values lower than 1 std from mean
ok = a > (c - b)
a[~ok] = c - b
#step 2, values higher than 1 std from mean
ok = a < (c + b)
a[~ok] = c + b
print a
당신이 정말로 별도의 배열 h
을 원한다면, 당신은 h = a.copy()
을 다음 a
대신 h
와 함께 일할 수 :이
. h는 무엇입니까? –
죄송합니다, 지금 편집 한 줄을 놓쳐서 죄송합니다. 내 코드는 몇 백 줄에 걸쳐서 정말 포함하고 싶습니다. 필자도 충분히 포함하고 싶습니다. – astrochris
그래서 h는 새로운 출력 목록입니다. – astrochris