【发布时间】:2021-10-18 09:29:35
【问题描述】:
我有一个包含 50 名患者和 100 得分数据点的 numpy 二维数组。
scores = array([[7.0, 10.0, 12.0, ..., 0.0],
[0.0, 11.0, 34.0, ..., 1.0],
.
.
.
[0.0, 33.0, 34.0, ..., 50.0]])
每个分数都是一个非负浮点值,将根据范围条件 {v ((25 < a) & (a < 100)).sum() 来完成,如this thread。
现在我需要根据每个患者获得的最高分为他分配一个类别,前提是类别数据点的count>= 某个阈值(例如 20%)。 p>
例如(以 100 个数据点中的 20% 作为阈值):
- 如果患者 i 得分 25 个严重程度为“C”的数据点 -> 他被归类为 C(严重)
- 如果患者 i 获得了 15 个严重性“C”的数据点和 15 个严重性“B”的数据点 -> 他被归类为 B(中度)。
有没有办法在 numpy 中自动执行此操作?
提前谢谢你。
更新:
预期输出应该是相同长度的数字或患者 (50,) 的一维数组,形式为
categories = ['A', 'C', 'A', .... 'B'],其中每个值都是患者的总体类别。
【问题讨论】: