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

如何控制Numpy文本输出的列顺序?

控制Numpy savetxt输出列顺序的简便方法

原生np.savetxt确实会严格按照数组的dtype定义顺序(或二维数组的列顺序)输出,但不需要逐字段手动打印,有更简便的方式:

  • 结构化数组(带字段名):直接通过字段名索引重新排列数组的字段顺序,再调用savetxt
  • 普通二维数组:通过列索引重新排列数组的列顺序,再保存

示例:结构化数组调整列顺序

import numpy as np

# 原始结构化数组
data = np.array([(1, 2.5, "foo"), (2, 3.0, "bar")],
                dtype=[("id", int), ("value", float), ("name", "U10")])

# 指定输出列顺序:name → id → value
ordered_data = data[:, ["name", "id", "value"]]

# 保存到文本文件,对应格式和表头
np.savetxt("output.txt", ordered_data, fmt="%s %d %.1f", header="name id value", comments='')

示例:普通二维数组调整列顺序

import numpy as np

# 原始二维数组,列顺序为col0, col1, col2
data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 指定输出列顺序:col2 → col0 → col1
ordered_data = data[:, [2, 0, 1]]

# 保存到文本文件
np.savetxt("output.txt", ordered_data, fmt="%d")

这种方式完全依赖numpy自身的索引功能,不需要额外循环或手动拼接字段,是最直接简便的解决方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 19:32:02