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

如何在Google Colab中将TSV/空格分隔文本读取为整型numpy数组

问题原因

你当前使用pd.read_table默认以制表符为分隔符读取内容,而你的文件是用空格分隔数值,所以整行内容会被识别为单个字符串列,最终转换得到的数组元素都是整行字符串,自然无法直接通过dtype=int转换格式。

解决方案

1. 自动获取上传文件名(无需写死路径)

files.upload()返回的结果是字典结构,键为上传文件的实际名称,值为文件二进制内容。你可以直接读取字典的第一个键作为文件名,不需要手动修改代码指定路径:

filename = next(iter(uploaded.keys()))

2. 正确转换为整型numpy数组

两种常用实现方式,按需选择即可:

方式一:无需pandas依赖,直接读取解析

from google.colab import files
import numpy as np

uploaded = files.upload()
filename = next(iter(uploaded.keys()))

with open(filename, 'r', encoding='utf-8') as f:
    # 逐行处理:去除首尾空白、按空格拆分、转整数,跳过空行
    arr_list = [list(map(int, line.strip().split())) for line in f if line.strip()]

np_arr = np.array(arr_list, dtype=int)

方式二:调整pandas读取参数实现

给read_table指定分隔符为任意空白字符,同时关闭表头识别即可:

from google.colab import files
import pandas as pd
import numpy as np

uploaded = files.upload()
filename = next(iter(uploaded.keys()))

# sep='\s+' 表示匹配任意长度的空白字符作为分隔符,header=None表示没有表头
data = pd.read_table(filename, sep='\s+', header=None)
np_arr = data.to_numpy(dtype=int)

执行完成后得到的np_arr就是你需要的5行4列整型numpy数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 03:27:04