查找在最后一列上过滤的所有矩阵列的平均值

时间:2015-10-10 00:58:06

标签: python numpy matrix

我是numpy的新人。我有一个Nx4矩阵,我想找到最后一列等于1时每列的平均值。在matlab中,我会做类似mean1 = mean(data[column 4] == 1)的事情。这将返回带有列的平均值的矩阵(或向量),第4列的平均值等于1.我无法找到指定如何处理此问题的任何特定文档。 This显示了如何过滤矩阵,但我不必将矩阵重新分配给新变量,使存储大小加倍。提前谢谢。

1 个答案:

答案 0 :(得分:1)

#make artificial data to match problem
data = np.random.random((100,4))
print( id(data) )
data[:,3] = data[:,3] < 0.5
print( id(data) )  #same object (memory location)
#get the filter
dfilter = data[:,3].astype(np.bool_)
#find the means
means = data[dfilter].mean(axis=0)