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

如何逐字符读取TXT文件并转换为二维NumPy数组?

将6位数字文本转换为二维NumPy数组的解决方案

np.loadtxt默认会把每行的6位数字解析成单个整数(比如000120会被转成120),自然得不到你要的逐字符拆分的二维数组,试试下面几种方法:

方法一:Python文件读取+列表推导式

先读取所有行,再逐行拆分字符并转换为整数,最后转为NumPy数组:

import numpy as np

with open('./file.txt', 'r') as f:
    lines = f.read().splitlines()

# 每行拆成单个字符,转整数后生成二维数组
arr = np.array([[int(char) for char in line] for line in lines])
print(arr)

方法二:使用np.genfromtxt处理字符串

利用genfromtxt读取每行作为字符串,再拆分转换:

import numpy as np

# 读取每行为字符串类型
raw_data = np.genfromtxt('./file.txt', dtype=str)
# 把每个字符串拆成字符列表,再转为整数数组
arr = np.array([list(line) for line in raw_data], dtype=int)
print(arr)

方法三:向量化操作(更高效)

通过NumPy的视图操作直接拆分字符串,适合大数据量场景:

import numpy as np

# 读取为6位字符串数组
raw_data = np.genfromtxt('./file.txt', dtype='U6')
# 将每个字符串拆分为单个字符,重塑为二维数组后转整数
arr = raw_data.view('U1').reshape(raw_data.shape[0], 6).astype(int)
print(arr)

以上三种方法都能输出你需要的格式:

[[0 0 0 1 2 0]
 [0 0 5 0 0 0]
 [0 0 0 9 0 0]
 [0 5 5 0 0 0]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 02:57:09