JMP에서 수행하는 프로세스를 자동화하려고합니다 (Analyze-> Distribution, A 열을 "Y 값"으로 입력하고 후속 열을 "가중치"값으로 사용). JMP에서는 한 번에 하나의 열을 사용해야합니다. 파이썬을 사용하여 모든 열을 반복하고 각 열의 중앙값을 보여주는 배열을 만들고 싶습니다.NumPy 또는 SciPy 가중치 중앙값 계산
예를 들어, 질량 배열이 [0, 10, 20, 30]이고 1 열의 가중치 배열이 [30, 191, 9, 0]이면 질량 배열의 가중치는 10 그러나 나는이 대답에 도달하는 방법을 모르겠습니다.
지금까지 제가
- 0의 값을 마스킹 배열로 가중치를 나타내는 CSV를 가져온 및
- 는 "Y 값"는 동일한 형상 및 크기의 배열을 만들어 가중치 배열 (113x32). 나는 이것을 할 필요가 있다고 확신하지는 않지만, 가중치를 취하기 위해 for 루프보다 쉬울 것이라고 생각했다.
정확히 어디로 가야할 지 모르겠습니다. 기본적으로 "Y 값"은 질량 범위이며, 배열의 모든 열은 각 질량에서 발견 된 데이터 요소 수를 나타냅니다. 보고 된 빈도를 기준으로 중간 질량을 찾아야합니다.
저는 파이썬이나 통계 전문가가 아니므로 유용한 정보를 생략하면 알려주세요!
업데이트 : 여기에 내가 지금까지 한 일에 대한 몇 가지 코드가있다 : 내가 정확하게 문제를 이해 우리가 할 수있는 일, 경우
#Boilerplate & Import files
import csv
import scipy as sp
from scipy import stats
from scipy.stats import norm
import numpy as np
from numpy import genfromtxt
import pandas as pd
import matplotlib.pyplot as plt
inputFile = '/Users/cl/prov.csv'
origArray = genfromtxt(inputFile, delimiter = ",")
nArray = np.array(origArray)
dimensions = nArray.shape
shape = np.asarray(dimensions)
#Mask values ==0
maTest = np.ma.masked_equal(nArray,0)
#Create array of masses the same shape as the weights (nArray)
fieldLength = shape[0]
rowLength = shape[1]
for i in range (rowLength):
createArr = np.arange(0, fieldLength*10, 10)
nCreateArr = np.array(createArr)
massArr.append(nCreateArr)
nCreateArr = np.array(massArr)
nmassArr = nCreateArr.transpose()
일부 예제 입력/출력 데이터가 유용 할뿐만 아니라 지금까지 얼마나 멀리 왔는지 코드를 보여 주려고합니다. – M4rtini