NumPy или SciPy для расчета взвешенной медианы

я пытаюсь автоматизировать процесс, который делает JMP (Analyze->Распределение, введя столбец A как "Значение Y ", используя последующие столбцы каквес" значение). В JMP вы должны делать это один столбец за раз - яЯ хотел бы использовать Python для циклического прохождения всех столбцов и создания массива, показывающего, скажем, медиану каждого столбца.

Например, если массив масс [0, 10, 20, 30], а массив масс для столбца 1 - [30, 191, 9, 0], взвешенная медиана массива должна быть 10. Однако я 'Я не уверен, как прийти к этому ответу.

Пока яве

импортировал CSV, показывающий веса в виде массива, маскирующие значения 0 исоздал массивЗначение Y " той же формы и размера, что и массив весов (113x32). Я'Я не совсем уверен, что мне нужно это сделать, но подумал, что это будет проще, чем цикл for для взвешивания.

Я не уверен, куда именно идти. В основномЗначение 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()

Ответы на вопрос(2)

Ваш ответ на вопрос