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

Python保存列长度不同的向量数组至TXT文件的方法

解决不同长度数组对的TXT列存储问题

情况1:逐组写入(x,y)元素对

如果需要把每一组A[i]和B[i]的元素一一对应,逐行连续写入TXT(先写第一组的所有(x,y)对,再写第二组,以此类推),可以用以下代码实现:

import numpy as np

# 示例数据,替换为你的实际A、B数组列表
A = [np.array([1,2,3]), np.array([1,2,3,4]), np.array([11,13,2,1,5,7,9,0])]
B = [np.array([11,21,31]), np.array([16,27,38,48]), np.array([114,134,24,14,54,74,94,4])]

with open('output_pairs.txt', 'w') as f:
    for arr_a, arr_b in zip(A, B):
        # 若组内数组长度不一致,可选择截断到较短长度(也可补NaN,按需调整)
        min_len = min(len(arr_a), len(arr_b))
        for x, y in zip(arr_a[:min_len], arr_b[:min_len]):
            f.write(f"{x}\t{y}\n")
        # 可选:组之间加空行分隔
        f.write("\n")

情况2:将所有数组作为列并排(短数组补缺失值)

如果需要把A和B的数组依次作为列(A[0]列、B[0]列、A[1]列、B[1]列……),由于数组长度不同,需先将所有数组补全到最长数组的长度,用NaN填充缺失值,再保存:

import numpy as np

A = [np.array([1,2,3]), np.array([1,2,3,4]), np.array([11,13,2,1,5,7,9,0])]
B = [np.array([11,21,31]), np.array([16,27,38,48]), np.array([114,134,24,14,54,74,94,4])]

# 获取所有数组的最大长度
max_len = max(len(arr) for arr in A + B)

# 补全每个数组到max_len长度,缺失值用NaN填充
padded_cols = []
for arr_a, arr_b in zip(A, B):
    padded_a = np.pad(arr_a, (0, max_len - len(arr_a)), mode='constant', constant_values=np.nan)
    padded_b = np.pad(arr_b, (0, max_len - len(arr_b)), mode='constant', constant_values=np.nan)
    padded_cols.extend([padded_a, padded_b])

# 转换为二维数组并保存
result = np.column_stack(padded_cols)
np.savetxt('output_columns.txt', result, fmt='%.2f', delimiter='\t', nanstr='NaN')

说明

  • 情况1适合按组查看(x,y)对应关系的场景,无需强制对齐长度,直接逐元素写入。
  • 情况2适合需要将所有数组作为列对齐展示的场景,通过补NaN满足np.savetxt对输入维度的要求。

内容的提问来源于stack exchange,提问作者H. Khani

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 10:31:14