NumPy ou SciPy para calcular a média ponderada

Estou tentando automatizar um processo que o JMP faz (Analisar-> Distribuição, inserindo a coluna A como o "valor Y", usando colunas subseqüentes como o valor "peso"). No JMP você tem que fazer isso uma coluna de cada vez - eu gostaria de usar o Python para percorrer todas as colunas e criar uma matriz mostrando, digamos, a mediana de cada coluna.

Por exemplo, se a matriz de massas for [0, 10, 20, 30] e a matriz de pesos da coluna 1 for [30, 191, 9, 0], a mediana ponderada da matriz de massas deverá ser 10. No entanto, Não sei como chegar a essa resposta.

Até agora eu tenho

importou o csv mostrando os pesos como um array, mascarando valores de 0, ecriou uma matriz do "valor Y" da mesma forma e tamanho da matriz de pesos (113x32). Não tenho certeza se preciso fazer isso, mas achei que seria mais fácil do que um loop for para fins de ponderação.

Eu não tenho certeza exatamente para onde ir a partir daqui. Basicamente, o "valor Y" é um intervalo de massas e todas as colunas na matriz representam o número de pontos de dados encontrados para cada massa. Eu preciso encontrar a massa mediana, com base na freqüência com que eles foram relatados.

Eu não sou um especialista em Python ou estatísticas, por isso, se eu omiti qualquer detalhe que seria útil, me avise!

Atualização: aqui está um código para o que eu fiz até agora:

#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()

questionAnswers(2)

yourAnswerToTheQuestion