我試圖自動化JMP所做的一個過程(分析 - >分佈,輸入列A作爲「Y值」,使用後續列作爲「權重」值)。在JMP中,您必須一次完成一列 - 我想使用Python循環遍歷所有列,並創建一個數組,例如顯示每列的中位數。例如,如果質量數組爲[0,10,20,30],且列1的權重數組爲[30,191,9,0],則質量數組的加權中值應該爲但是,我不確定如何得出這個答案。NumPy或SciPy來計算加權中位數
到目前爲止我
- 導入示出的權重爲陣列的CSV,掩蔽的0值,並且
- 創建的「Y值」相同的形狀和尺寸與陣列權重數組(113x32)。我不完全確定我需要這樣做,但認爲它比加權循環更容易。
我不確定究竟該從哪裏出發。基本上,「Y值」是一個質量範圍,數組中的所有列表示爲每個質量找到的數據點的數量。我需要根據他們的報告頻率找到中位數量。
我不是Python或統計學的專家,所以如果我省略了任何有用的細節,請告訴我!
更新:這裏是爲了什麼我迄今所做的一些代碼:
#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