You need to enable JavaScript to run this app. 使用numpy genfromtxt读取CSV时分隔符设为分号无法打开且弹出弃用警告
优惠活动
大模型
产品
解决方案
定价
更多

使用numpy genfromtxt读取CSV时分隔符设为分号无法打开且弹出弃用警告

问题产生原因
  • 读取功能失效的核心原因是分隔符配置与文件实际格式不匹配。你此前的测试已经验证,设置逗号作为分隔符时文件可以正常解析为numpy数组,说明melb_data.csv本身的字段分隔符就是英文逗号,不存在分号分隔的结构。当强行将分隔符设为分号时,genfromtxt会按照分号切分每一行内容,由于CSV文件的每一行都没有分号字符,整行内容会被识别为单个长字符串字段,完全无法解析出结构化的列结构,自然不能生成可用的numpy数组。
  • VisibleDeprecationWarning警告的触发逻辑:代码中设置了dtype=None,该参数会让genfromtxt自动推断每一列的数据类型。当自动识别到列中包含字符串类型内容时,新版numpy读取未指定编码的文件字节流时,就会触发该弃用提示。这个警告本身和更换分号分隔符没有绑定关系,只要使用dtype=None读取带字符串列的本地CSV,在当前numpy版本下都会弹出该提示。
对应解决方法
  • 读取当前目标CSV时,直接将delimiter参数改回',',和此前能正常运行的配置保持一致,不要设置和文件实际格式不匹配的分隔符参数。
  • 如果确实需要读取分号分隔格式的CSV文件,先确认目标文件的字段分隔符确实为分号,再配置delimiter=';';同时为了消除编码弃用警告,给genfromtxt显式补充encoding参数,比如常用配置为encoding='utf-8',如果是包含中文的CSV可根据实际文件编码选择'gbk',如果需要跟随系统默认编码则设置encoding=None,可正常运行的参考代码如下:
    data2 = genfromtxt('C:\\Users\\DELL\\Desktop\\ML\\melb_data.csv',dtype = None,delimiter = ';',encoding='utf-8')
  • 如果不需要读取文件中的字符串列,也可以去掉dtype=None配置,显式为各列指定数据类型(比如数值列指定为int/float),同样可以规避该编码警告。

内容的提问来源于stack exchange,提问作者Darshil Jariwala

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 11:24:00