Python中文
首页
教程
问答
标签
搜索
登录
注册
最好的办法是什么百分位沿着一个忽视南斯的轴心?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>有没有一种相当快速的方法可以对包含NaN值的数据执行<code>np.percentile(ndarr, axis=0)</code>?在</p> <p>对于<code>np.median</code>,对应的<code>bottleneck.nanmedian</code>(<a href="https://pypi.python.org/pypi/Bottleneck" rel="noreferrer">https://pypi.python.org/pypi/Bottleneck</a>)相当不错。在</p> <p>我对percentile提出的最好的方法是:</p> <pre><code> from bottleneck import nanrankdata, nanmax, nanargmin def nanpercentile(x, q, axis): ranks = nanrankdata(x, axis=axis) peak = nanmax(ranks, axis=axis) pct = ranks/peak / 100. # to make a percentile wh = nanargmin(abs(pct-q),axis=axis) return x[wh] </code></pre> <p>这行不通;真正需要的是用某种方法沿着<code>axis</code>获取第n个元素,但我还没有找到numpy切片技巧来做到这一点。在</p> <p>“相当快”意味着比循环指数更好,例如:</p> ^{pr2}$ <p>这是有效的,但可能非常慢。在</p> <p><code>np.ma</code>似乎没有按预期工作;它将<code>nan</code>值视为<code>inf</code>:</p> <pre><code>xm = np.ma.masked_where(np.isnan(x),x) print np.percentile(xm,40,axis=2) # array([[ 1.8, 5.6], # [ 0.9, 7.8]]) </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>如果您不需要超快的解决方案,您可以先将数组转移到pandas DataFrame并执行分位数,然后返回numpy数组。在</p> <pre><code>df = pd.DataFrame(array.T).quantile() arr = np.array(df) </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在乒乓球比赛中预测球的轨迹,对于AI球拍预测?
2 回答
如何在乒乓球游戏中阻止球
4 回答
如何在乘法和模中不乘空间?
1 回答
如何在乘法和除以2个不同的数字之间进行交换?
7 回答
如何在也是数据一部分的单个字符上拆分大字符串
8 回答
如何在乾草堆中找到針,有更好的解決方案嗎?
2 回答
如何在事件wxWidgets中传递自定义数据
6 回答
如何在事件中使用lambda i=i?
6 回答
如何在事件中心只接收最近的数据
10 回答
如何在事件发生之前保持云函数运行?
9 回答
如何在事件发生后使页面重定向到同一页面
3 回答
如何在事件回调之间保持python生成器的状态
1 回答
如何在事件处理程序(pythonsocket、sphinx)中保留docstring
2 回答
如何在事件处理程序中更改wxRichTextCtrl的光标位置?
3 回答
如何在事件处理程序中访问外部对象?
4 回答
如何在事件循环中将协程打包为正常函数?
4 回答
如何在事件循环之外运行协同程序?
2 回答
如何在事件循环结束时为并发未来的所有线程调用类方法?
3 回答
如何在事件文件中只保留一份摘要?
9 回答
如何在事件模板中添加事件
3 回答