Python 中用于医疗 AI(尤其是医疗影像、电子病历、预测建模等)的常用库在 2026 年已经非常成熟,主要分为两大类:
- 医疗影像(Medical Imaging):处理 DICOM、NIfTI、3D/4D 体积数据、分割、分类、配准等
- 医疗数据/预测建模:处理结构化 EHR 数据、时间序列、代码预测、风险评分等
以下是 2025–2026 年最活跃、最被实际使用的库(按领域热度排序),附带真实案例和代码片段。
医疗影像领域 Top 库(2026 年主流)
| 排名 | 库名 | 主要用途 | 底层框架 | 活跃度 / 社区 | 典型场景(2026) | 学习曲线 |
|---|---|---|---|---|---|---|
| 1 | MONAI | 医疗影像深度学习全栈(预处理→模型→部署) | PyTorch | ★★★★★ | 3D/4D 分割、分类、自监督、Auto3DSeg | ★★★★☆ |
| 2 | TorchIO | 医疗图像加载、增强、patch采样 | PyTorch | ★★★★☆ | 数据增强、patch-based 训练 | ★★★☆☆ |
| 3 | SimpleITK | 图像配准、分割、滤波、格式转换 | ITK | ★★★★☆ | 经典图像处理、配准、非DL任务 | ★★★★☆ |
| 4 | pydicom | DICOM 文件读写、元数据操作 | 纯 Python | ★★★★☆ | DICOM 预处理、匿名化、标签提取 | ★★☆☆☆ |
| 5 | nibabel | NIfTI (.nii/.nii.gz) 读写 | 纯 Python | ★★★★☆ | 脑影像(MRI/fMRI)处理 | ★★☆☆☆ |
| 6 | MedPy | 经典医疗图像处理(滤波、度量) | NumPy/SciPy | ★★★☆☆ | 老项目迁移、简单分割度量 | ★★★☆☆ |
| 7 | PyRadiomics | 影像组学特征提取(radiomics) | SimpleITK | ★★★★☆ | 肿瘤预后、治疗响应预测 | ★★★★☆ |
医疗数据 / 预测建模领域主流库
| 库名 | 主要用途 | 典型任务 | 社区活跃度 |
|---|---|---|---|
| PyHealth | 医疗时间序列 + EHR 建模全流程 | 死亡/再入院/药物推荐/诊断预测 | ★★★★☆ |
| Hugging Face Transformers(biomed 模型) | 临床文本 / 生物医学 NLP | 临床笔记分类、实体识别、Med-PaLM-like | ★★★★★ |
| scikit-learn / XGBoost / LightGBM | 结构化数据预测(结合 PyHealth) | 风险评分、ICU 预测 | ★★★★★ |
真实案例 + 代码解析(2026 年视角)
案例 1:MONAI 做 3D 肝脏自动分割(最热门医疗 AI 任务之一)
# pip install monai torch torchvisionimportmonaifrommonai.transformsimport(Compose,LoadImaged,AddChanneld,ScaleIntensityRanged,CropForegroundd,RandCropByPosNegLabeld,RandAffined,EnsureTyped,ToTensord)frommonai.networks.netsimportUNetfrommonai.inferersimportsliding_window_inferencefrommonai.dataimportCacheDataset,DataLoader# 1. 数据变换(医疗专用增强)train_transforms=Compose([LoadImaged(keys=["image","label"]),# 支持 DICOM / NIfTIAddChanneld(keys=["image","label"]),ScaleIntensityRanged(keys=["image"],a_min=-100,a_max=250,b_min=0.0,b_max=1.0,clip=True),CropForegroundd(keys=["image","label"],source_key="image"),RandCropByPosNegLabeld(keys=["image","label"],label_key="label",spatial_size=(96,96,96),pos=1,neg=1,num_samples=4),RandAffined(keys=["image","label"],prob=0.2,...),# 旋转/缩放/平移EnsureTyped(keys=["image","label"]),ToTensord(keys=["image","label"]),])# 2. 数据集(支持 CacheDataset 加速)train_ds=CacheDataset(data=train_files,transform=train_transforms)train_loader=DataLoader(train_ds,batch_size=2,num_workers=4)# 3. 模型(MONAI 提供大量预定义网络)model=UNet(spatial_dims=3,in_channels=1,out_channels=2,# liver + backgroundchannels=(16,32,64,128,256),strides=(2,2,2,2),).cuda()# 4. 训练(可结合 Lightning / Ignite)# ...# 5. 推理(sliding window 大体积推理)model.eval()withtorch.no_grad():pred=sliding_window_inference(inputs=image,roi_size=(96,96,96),sw_batch_size=4,predictor=model)为什么 MONAI 是 2026 年医疗影像首选?
- 内置大量医疗专用 transform(HU 窗、强度归一、patch 采样)
- 支持 DICOM → NIfTI 转换、MONAI Label(半自动标注)
- MONAI Deploy(临床级部署 MAP 格式)
- Auto3DSeg(零代码自动分割 pipeline)
案例 2:PyHealth 做 ICU 死亡率预测(EHR 时间序列)
# pip install pyhealthfrompyhealth.datasetsimportMIMIC3Datasetfrompyhealth.modelsimportRETAINfrompyhealth.trainerimportTrainer# 1. 加载 MIMIC-III(或 eICU、OMOP)dataset=MIMIC3Dataset(root="data/mimic-iii-1.4",tables=["ADMISSIONS","PATIENTS","LABEVENTS","CHARTEVENTS"],code_vocabs={"LABEVENTS":"lab_code","CHARTEVENTS":"chart_code"},target="readmission",# 或 mortality, length_of_stay 等)# 2. 数据预处理(自动处理时间序列)frompyhealth.tasksimportreadmission_prediction_mimic3 dataset=dataset.set_task(readmission_prediction_mimic3)# 3. 选择模型(RETAIN / Transformer / CNN 等 30+ 种)model=RETAIN(dataset=dataset,feature_keys=["conditions","procedures","labs","meds"],label_key="readmission",mode="binary")# 4. 训练 & 评估trainer=Trainer(model=model,epochs=20,device="cuda")trainer.train()trainer.evaluate()PyHealth 优势:
- 一站式:数据加载 → 任务定义 → 模型 → 评估指标(医疗专用如 AUPRC、F1@K)
- 支持 10+ 医疗任务(药物推荐、诊断预测、住院时长等)
案例 3:pydicom + SimpleITK 读取 & 处理 DICOM 系列
importpydicomimportSimpleITKassitkimportnumpyasnp# 读取单张 DICOMds=pydicom.dcmread("IM-0001-0001.dcm")print(ds.PatientName,ds.Modality,ds.pixel_array.shape)# 读取整个系列 → 3D 体积reader=sitk.ImageSeriesReader()dicom_names=reader.GetGDCMSeriesFileNames("dicom_folder/")reader.SetFileNames(dicom_names)image=reader.Execute()# 转 numpyarray_3d=sitk.GetArrayFromImage(image)# shape: (slices, height, width)小结:
- 医疗影像首选MONAI + TorchIO + pydicom(深度学习)
- 经典处理用SimpleITK + nibabel
- EHR / 预测建模首选PyHealth
- 临床文本 / 生物医学 NLP 用Hugging Face的 Bio_ClinicalBERT / PubMedBERT 等
你现在最感兴趣的是哪个方向?
- 3D 器官分割(肝/肺/肿瘤)
- DICOM 预处理 pipeline
- EHR 预测模型(死亡/再入院)
- 影像组学(radiomics)特征提取
告诉我你的具体目标,我可以给你更精细的代码模板或完整 pipeline 示例~