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

如何为含多数据类型的.txt输入文件正确指定dtype,解决np.genfromtxt报错?

np.genfromtxt 报错TypeError: got multiple values for argument 'dtype' 解决方案

报错根因

你混淆了内置open()函数和np.genfromtxt()的入参规则:np.genfromtxt()的第二个位置参数本身就是dtype,你在文件路径后额外传入了读取模式'r'作为第二个位置参数,后续又用关键字参数显式指定了dtype的取值,相当于给同一个参数传了两次值,直接触发报错。

修复步骤

  • 删掉文件路径后多余的'r'参数,np.genfromtxt()不需要手动传入文件读取模式
  • 修正names参数的格式,移除逗号后的多余空格,避免字段名识别异常
  • 读取完成后调用结构化数组的tolist()方法,即可将结果存入你提前创建的PatDat空列表

修正后的示例代码

import numpy as np

PatDat = []
input_file = np.genfromtxt(
    'F:\\Admin\\Programming_Files\\BIOE Files\\Python\\input_file.txt',
    dtype = [('Name', '<U6'), ('Height', '<f8'), ('Weight', '<f8'), ('Sex', '<i4'),
             ('Age', '<i4'), ('ActLev', '<i4'), ('SBP', '<i4'), ('DBP', '<i4')],
    names= "Name,Height,Weight,Sex,Age,ActLev,SBP,DBP",
    encoding = None
)
# 将读取结果存入PatDat
PatDat = input_file.tolist()

可选优化:如果你的txt文件第一行就是对应字段的表头,不需要手动指定names参数,直接设置names=True即可自动读取第一行作为字段名,降低手动配置的出错概率。

内容的提问来源于stack exchange,提问作者Nicholas Manning

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 23:57:04