You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用numpy按带最低计数阈值的规则对分数数组的患者分类

完全可以用numpy实现该需求,所有操作都可以通过numpy向量化运算完成,无需额外编写循环逻辑,代码如下:

import numpy as np

# 输入的患者评分二维数组,形状为(患者数, 单患者评分点数),此处为(50, 100)
scores = np.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]
    # 其余数据省略
])

# 配置参数
threshold_ratio = 0.2  # 阈值比例,可按需调整
n_per_patient = scores.shape[1]
threshold = threshold_ratio * n_per_patient

# 按优先级从高到低统计每类的数量(按行统计,即每个患者的对应类别数量)
# C类:评分≥50
count_c = (scores >= 50).sum(axis=1)
# B类:20≤评分<50(等于50已归入C类,避免边界冲突)
count_b = ((scores >= 20) & (scores < 50)).sum(axis=1)

# 初始化结果数组,默认分类为A(最低优先级)
categories = np.full(scores.shape[0], fill_value='A', dtype='U1')
# 先标记符合阈值的B类(优先级低于C,先赋值避免被C覆盖)
categories[count_b >= threshold] = 'B'
# 最后标记符合阈值的C类(最高优先级)
categories[count_c >= threshold] = 'C'

运行后得到的categories就是形状为(50,)的一维数组,每个元素对应一位患者的最终分类,符合你要求的输出格式。

边界说明:原规则中v=50同时满足B、C两类的区间定义,此处按照优先级将v=50归入C类统计,符合你设定的C→B→A的判断顺序。

内容的提问来源于stack exchange,提问作者Amr ALHOSSARY

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 19:36:02