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

除latin1、bytes、ASCII外numpy还支持哪些可用编码?

问题解答

为什么未被明确定义的latin编码可以正常使用

numpy官方在源码注释中标注的三类编码,是官方经过完整兼容性测试、保证全场景可用的编码,而非genfromtxt支持的全部编码。你所使用的numpy 1.20.1版本中,npyio.py没有对编码参数做额外的拦截校验,完全依赖Python标准库的编解码能力。
genfromtxt的编码参数底层会直接透传给Python标准库的编解码器处理,你观察到的latin可以正常使用,是因为Python标准库中latin本身就是latin1(标准名称为iso-8859-1)的别名,二者实际调用的是同一套编解码逻辑,不存在兼容性差异。你可以通过以下代码验证该对应关系:

import codecs
# 输出结果为 iso-8859-1,即latin1的标准命名
print(codecs.lookup('latin').name)

是否存在其他未列明但可正常生效的编码

存在。只要是你当前Python 3.8.8环境支持的所有标准编解码,都可以传入genfromtxt的encoding参数使用,比如常见的utf-8、gbk、gb2312等都能正常完成文件读取。
官方未列明这些编码的原因,是这些编码没有经过numpy团队的全场景兼容性测试,极端场景下如果出现编解码和numpy字节逻辑冲突的问题,官方不会优先做适配修复,普通场景下使用没有问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 09:27:01