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

Python清洗混杂逗号/空格分隔文本 生成可检索NumPy二维数组

混合分隔符杂乱文本清洗实现方案

核心处理逻辑

严格按照需求规则逐行处理文本,最终输出规整NumPy二维数组:

  • 所有英文字符统一转为小写
  • 自动删除字段间连续重复的冗余空格、制表符
  • 统一将空格替换为逗号作为分隔符,保留原文本中逗号对应的空字段
  • 自动移除每行开头多余的逗号
  • 自动对齐所有行列数,不足位置补空字符串,保证二维数组结构合法

完整实现代码

import re
import numpy as np

def text_to_numpy_array(file_path: str) -> np.ndarray:
    processed_rows = []
    max_col_count = 0

    # 第一轮逐行清洗,统计最大列数
    with open(file_path, 'r', encoding='utf-8') as f:
        for raw_line in f:
            # 移除行尾换行符
            line = raw_line.rstrip('\n')
            # 字母全部转小写
            line = line.lower()
            # 连续空白字符替换为单个空格,移除首尾空格
            line = re.sub(r'\s+', ' ', line).strip()
            # 空格替换为逗号
            line = line.replace(' ', ',')
            # 移除行首逗号
            line = line.lstrip(',')
            # 按逗号拆分为行元素
            row = [item.strip() for item in line.split(',')]
            processed_rows.append(row)
            max_col_count = max(max_col_count, len(row))
    
    # 对齐所有行到统一列数
    for idx in range(len(processed_rows)):
        col_diff = max_col_count - len(processed_rows[idx])
        if col_diff > 0:
            processed_rows[idx].extend([''] * col_diff)
    
    # 转换为NumPy二维数组
    return np.array(processed_rows, dtype=str)

调用方式

将待清洗的杂乱文本保存为本地文件(例如messy_data.txt),直接调用函数即可得到结果:

my_array = text_to_numpy_array('messy_data.txt')
# 输出查看结果
print(my_array)

适配场景说明

  • 兼容逗号、空格、制表符混合作为分隔符的杂乱文本
  • 支持ANSYS命令流导出文件这类包含特殊标记(*、!注释、括号格式串、科学计数法数值)的复杂场景
  • 完整保留原始数值、标识符、格式串内容,不会篡改原始数据
  • 自动处理空行、行尾多余逗号、字段前后冗余空格等异常格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 00:33:25