我不仅要取中间值,还要取数据值(如第2列)沿轴(第1列)的不同百分比削减(例如第25列、第75列等),其格式如下:
25.4 14.29 15.25 14.58 10.02
34.4 14.34 15.32 14.62 10.03
90.4 14.44 14.82 14.59 8.58
90.6 14.00 14.83 14.60 8.56
54.4 14.00 14.83 14.60 8.56
。。。在
像这样的行有数千行,它们不均匀地分布在第一列中(例如,如果我分为0-10、10-20等,则每个行中的行数不同)。我在挠头,因为我想我可以用百分位,并将数据读入按列1排列成子数组的2D数组,并使用axis参数指定沿适当的轴进行百分位切割。然而,百分位似乎需要一个矩形数组(即精确的[M,N]值),在这种情况下是不灵活的。在
所以,我在寻找一种沿轴执行这种操作的方法。为了给你一个例子,我如何沿着一个轴取平均值,这里是我常用的代码,依赖于数字直方图公司名称:
nval = numpy.histogram(val1,10,range=[0,100])[0]
val2sum= numpy.histogram(val1,10,range=[0,100],weights=val2)[0]
val2mean = val2sum/nval
其中val1是第一列。所以,我的python知识水平对于做除平均值以外的任何事情都是相当有限的,所以学习沿一个轴计算百分位切割和中间值将非常有帮助。有什么建议吗?谢谢。在
下面的代码应该可以实现您想要的。在
但是,如果您使用示例数据运行此程序,您将收到一个
^{pr2}$RuntimeWarning: invalid value encountered in divide
警告,因为除法中有零。val2mean
中的结果是:如果按0筛选,则可以避免警告:
这将为您提供以下输出:
注意:要获得匹配的边,您需要
np.histogram
函数中的第二个参数,您可以用相同的方法过滤它。在相关问题 更多 >
编程相关推荐