Numpy 平均百分位数范围,例如。均值(第 25 到第 50 个百分位数)?
Numpy mean percentile range, eg. Mean (25th to 50th Percentile)?
我想计算两个百分位数范围之间的平均值,例如第 25 个百分位数和第 50 个百分位数之间的平均值。
我通常使用np.percentile来计算特定的百分位数。
知道如何计算平均值 (25-50) 吗?我可以减去吗?
mean(25-50) = np.percentile(array,50) - np.percentile(array,25)
``
您不能简单地减去不同百分位数的两个值。
为了找到第 25 个和第 50 个百分位数之间的元素的平均值,您需要找到所有这些元素的总和并将其除以大小。
求上述元素之和,可以用0-50%元素之和减去0-25%元素之和
得到差和后,只需将其除以这些元素的大小即可。
# find the indexes of the element below 25th and 50th percentile
idx_under_25 = np.argwhere(array <= np.percentile(array, 25)).ravel()
idx_under_50 = np.argwhere(array <= np.percentile(array, 50)).ravel()
# find the number of the elements in between 25th and 50th percentile
diff_num = len(idx_under_50) - len(idx_under_25)
# find the sum difference
diff_sum = np.sum(np.take(array, idx_50)) - np.sum(np.take(array, idx_25))
# get the mean
mean = diff_sum / diff_num
我想计算两个百分位数范围之间的平均值,例如第 25 个百分位数和第 50 个百分位数之间的平均值。
我通常使用np.percentile来计算特定的百分位数。
知道如何计算平均值 (25-50) 吗?我可以减去吗?
mean(25-50) = np.percentile(array,50) - np.percentile(array,25)
``
您不能简单地减去不同百分位数的两个值。
为了找到第 25 个和第 50 个百分位数之间的元素的平均值,您需要找到所有这些元素的总和并将其除以大小。
求上述元素之和,可以用0-50%元素之和减去0-25%元素之和
得到差和后,只需将其除以这些元素的大小即可。
# find the indexes of the element below 25th and 50th percentile
idx_under_25 = np.argwhere(array <= np.percentile(array, 25)).ravel()
idx_under_50 = np.argwhere(array <= np.percentile(array, 50)).ravel()
# find the number of the elements in between 25th and 50th percentile
diff_num = len(idx_under_50) - len(idx_under_25)
# find the sum difference
diff_sum = np.sum(np.take(array, idx_50)) - np.sum(np.take(array, idx_25))
# get the mean
mean = diff_sum / diff_num