【问题标题】:How to calculate weighted Median for every subarray in 2d matrice?如何计算二维矩阵中每个子数组的加权中位数?
【发布时间】:2021-01-26 08:22:15
【问题描述】:

这个问题是一个新问题(我已经研究过类似的问题,但没有找到我需要的问题)。因此:

有效地将加权中值应用于二维numpy 矩阵的每个子数组的最有效方法是什么? (没有额外的框架,但如果可能的话,纯numpy

Data = np.asarray([[ 1.1,  7.8,  3.3, 4.9],
[ 6.1,  9.8,  5.3, 7.9],
[ 4.1,  4.8,  3.3, 7.1],
... 
[ 1.1,  7.4,  3.1, 4.9],
[ 7.1,  3.8,  7.3, 8.1],
[ 19.1,  2.8,  3.2, 1.1]])

weights = [0.64, 0.79, 0.91, 0]

注意:其他问题的答案仅显示一维问题。这个问题必须高效处理1.000.000个子数组

【问题讨论】:

  • 看来我误解了“加权中位数”是什么。 This answer 是在我查找加权中位数的含义时出现的。

标签: python arrays numpy statistics median


【解决方案1】:

使用@JoonyoungPark 提供的Data,您可以使用列表推导:

[np.median(i*weights) for i in Data]

[1.8535000000000001,
 4.3635,
 2.8135,
 1.7625000000000002,
 3.7729999999999997,
 2.5620000000000003]

【讨论】:

  • 编辑:你确定这是“加权中位数”吗?实际上,加权是指以百分位数表示的权重。 (如果我错了或者结果相同,请纠正我)
猜你喜欢
  • 2010-12-30
  • 2023-04-08
  • 1970-01-01
  • 1970-01-01
  • 2020-11-14
  • 2023-03-18
  • 1970-01-01
  • 2021-03-06
  • 2020-10-21
相关资源
最近更新 更多