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

如何按数值后缀排序文本文件并合并为numpy数组保存为.npy文件?

实现代码
import numpy as np
import glob
import os

# 获取所有匹配文件并按数值后缀从小到大排序
file_list = glob.glob("./signal_*")
sorted_files = sorted(file_list, key=lambda x: float(os.path.basename(x).replace("signal_data", "")))

# 逐文件读取内容存储为行数组
all_rows = []
for file_path in sorted_files:
    with open(file_path, 'r', encoding='utf-8') as f:
        # 读取每行内容转浮点数,自动过滤空行
        row_data = [float(line.strip()) for line in f if line.strip()]
    all_rows.append(row_data)

# 转换为numpy数组并保存为npy格式
result_arr = np.array(all_rows)
np.save("merged_signal_data.npy", result_arr)

# 可选:验证输出结果
print(result_arr)

原代码问题说明

  • glob.glob的路径参数必须为字符串类型,需要用引号包裹,原代码缺少引号会触发语法错误
  • 未对匹配到的文件做数值后缀排序,glob默认返回字典序结果,无法满足数值从小到大的排序要求
  • Python列表没有vstack方法,且原代码完全缺失读取文件内容、转换数值的逻辑,调用vstack无任何实际作用
  • 不需要手动调用vstack做堆叠,直接把所有行的列表传入np.array即可直接生成符合要求的二维数组

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 01:18:03