- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Python 允许我以 1 的步长获取值列表的百分位数 0 到 100,如下所示:
import numpy as np
a = np.array([1,2,3,4,5,6,7,8,9,10])
np.percentile(a,np.arange(0,101,1),interpolation='higher')
结果:
array([ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10])
我正在尝试使用 Athena SQL 实现相同的结果,但我还没有成功。
虽然我尝试过使用 NTILE,但我可能遗漏了一个关键概念:
-- sample data
WITH dataset (val) AS (
VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10)
)
select *,NTILE(101) OVER(ORDER BY val) calculated_ntile
from dataset
有没有办法获得与 Python 结果完全等同的 Athena SQL 结果?
更新:我编写了以下查询:
WITH dataset (val) AS (
VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10)
)
SELECT approx_percentile(val, ARRAY[0, 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2, 0.21, 0.22, 0.23, 0.24, 0.25, 0.26, 0.27, 0.28, 0.29, 0.3, 0.31, 0.32, 0.33, 0.34, 0.35, 0.36, 0.37, 0.38, 0.39, 0.4, 0.41, 0.42, 0.43, 0.44, 0.45, 0.46, 0.47, 0.48, 0.49, 0.5, 0.51, 0.52, 0.53, 0.54, 0.55, 0.56, 0.57, 0.58, 0.59, 0.6, 0.61, 0.62, 0.63, 0.64, 0.65, 0.66, 0.67, 0.68, 0.69, 0.7, 0.71, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.8, 0.81, 0.82, 0.83, 0.84, 0.85, 0.86, 0.87, 0.88, 0.89, 0.9, 0.91, 0.92, 0.93, 0.94, 0.95, 0.96, 0.97, 0.98, 0.99] ) from dataset
输出的几乎是我需要的:
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]
我需要修改什么?
最佳答案
由于没有明确定义百分比计算的不同实现方式,我最终编写了一个相当于 Athena 的 approx_percentile 的 python:
def approx_percentile(a,p):
a = np.sort(a)
n = a.shape[0]
rank = (p / 100) * n
return a[0 if math.ceil(rank) == 0 else math.ceil(rank)-1]
关于python - np.percentile Athena SQL 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73402030/
我正在尝试理解 numpy 中的百分位数。 import numpy as np nd_array = np.array([3.6216, 4.5459, -3.5637, -2.5419]) ste
我将计算通过group by room_id计算其他数据的所有数据的百分位数,如下所示: select distinct room_id, count(user_
我正在尝试对 DataFrame 的列 score 进行等分。 我使用以下代码: np.percentile(df['score'], np.arange(0, 100, 10)) 我的问题是分数,有
我尝试从具有 NoData 值的数组中检索百分位数。在我的例子中,Nodata 值由 -3.40282347e+38 表示。我认为屏蔽数组会将此值排除在进一步计算之外。我成功创建了掩码数组,但对于 n
Python 允许我以 1 的步长获取值列表的百分位数 0 到 100,如下所示: import numpy as np a = np.array([1,2,3,4,5,6,7,8,9,10]) np
我发现 dplyr %>% 运算符有助于简单的 ggplot2 转换(无需求助于 ggplot2 extensions 所需的 ggproto) ),例如 library(ggplot2) libra
当我们讨论分布式系统的性能时,我们使用术语 tp50、tp90、tp99.99 TPS。有人可以解释一下这些是什么意思吗? 最佳答案 tp90 是满足 90% 请求的最长时间。想象一下你有时间: 10
use strict; use warnings; use Statistics::Descriptive; use 5.012; my @data = ( -2, 7, 7, 4, 18, -5 )
我使用此函数从 here 计算百分位数: import numpy as np a = [12, 3, 45, 0, 45, 47, 109, 1, 0, 3] np.percentile(a, 25
我正在使用 Pandas 计算一些财务风险分析,包括风险值(value)。简而言之,要计算风险值(value) (VaR),您需要一系列时间序列的模拟投资组合值(value)变化,然后计算特定的尾部百
这段代码: print len(my_series) print np.percentile(my_series, 98) print np.percentile(my_series, 99) 给出:
我试图区分 np.quantile() 的场景或 np.percentile()应该使用。 >>> import numpy as np >>> a = np.array([[10, 7, 4], [
我有两个关于 Firebase 远程配置的问题: 如果我为它分配 50% 的值(value),那么它是否会在我所有观众的 50-50% 上进行 A/B 测试? 如果我在远程配置中有两个参数,并且每个参
可以通过公式 =PERCENTILE(A1:A10, 0.9) 计算 A1:A10 范围内整数的 90% 百分位。一般情况下,这种方法效果很好,但如果 A1:A10 范围内的一个或多个单元格出现错误(
一个家庭作业问题要求我计算平均值的置信区间。当我使用传统方法和 numpy.percentile() 进行操作时,我得到了不同的答案。 我认为我可能误解了如何或何时使用 np.percentile()
对于包含 NaN 值的数据,是否有一种相当快速的方法来np.percentile(ndarr, axis=0)? 对于np.median,有相应的bottleneck.nanmedian ( http
有点迷茫。我从我运行的报告中得到了一些 Loadrunner 分析。我是测试新手。我对第 90 个百分位数的理解是,考虑到它采用第 90 个百分位数并排除异常值,它呈现出更真实的画面。尽管我正在查看两
我有一列数据,其中一些是NULL值,我希望从中提取单个第90个百分位值: ColA ----- NULL 100 200 300 NULL 400 500 600 700 800 900 1000 对
我正在尝试从命令行在 jmeter 聚合报告中打印 95 Percentile 和 99 Percentile 响应时间 为此,我尝试了此处提到的解决方案:Jmeter: Generating agg
Students=['student1','student2','student3','student4','student5','student6','student7','student8','s
我是一名优秀的程序员,十分优秀!