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

NumPy使用loadtxt读两列文本仅生成1维数组,如何得到(175,2)二维数组?

问题根源

你当前代码返回(175,)的一维数组不是真的缺失了第二列,而是因为你指定了带命名字段的dtype,numpy.loadtxt会返回结构化一维数组:数组的每个元素是同时包含id和mean两个字段的复合结构,所以维度只会显示为行数量。你可以通过meanData['id']和meanData['mean']分别取出两列数据验证内容完整。

解决方案

方案1:生成形状为(175,2)的普通二维数组

如果你的id列是纯数字,不需要保留字符串格式,直接去掉自定义dtype读取即可:

import os
import numpy as NUM

datapath = "\\Projects\\prob\\2020\\data\\"
m1 = os.path.join(datapath, 'data.txt')
# 直接读取默认返回二维数组
meanData = NUM.loadtxt(m1)
print(meanData.shape)
# 输出为 (175, 2)

如果需要保留id的字符串格式,可将读取到的结构化数组转换为二维数组:

meanData = NUM.loadtxt(m1, dtype={'names': ('id', 'mean'), 'formats': ('S10', 'float64')})
# 结构化数组转普通二维数组
meanData = NUM.array(meanData.tolist())
print(meanData.shape)
# 输出为 (175, 2)

方案2:保留结构化数组格式

如果你不需要严格匹配(175,2)的shape,只是需要调用两列数据,直接通过字段名取值即可,无需额外转换:

# 取id列
id_col = meanData['id']
# 取mean列
mean_col = meanData['mean']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 03:15:03