
本文介绍如何对 NumPy 字符串数组中的每个元素统一执行文本清洗操作——移除所有空格、将半角逗号(,)替换为英文小数点(.),适用于金融数据、CSV 导入后格式标准化等场景。
在处理从波兰证券交易所等来源获取的结构化文本数据时,常见数值字段(如成交额、市盈率)以带空格分隔的千位格式(如 '1 386 216 000')和欧洲风格小数(如 '0,891')存储。这类数据直接用于数值计算前,必须清洗为标准数字格式(如 '1386216000' 和 '0.891')。由于原始数据已加载为 dtype=' 推荐使用 np.vectorize 封装纯字符串处理函数,既保持代码简洁,又充分利用 NumPy 的广播能力。核心逻辑仅需两步:先用 .replace(' ', '') 删除全部空格;再用 .replace(',', '.') 将逗号转为小数点。注意该顺序不可颠倒——若先替换逗号,后续去空格可能误删其他位置的空格(尽管本例中无此风险,但属良好实践)。 以下是完整可运行示例: Python Linux版 为 Python.org 官方提供的 Python 3.14.6 Linux/Unix 源码包,适合在Linux/Unix环境中安装、运行 Python 代码并学习函数、模块和脚本开发。
import numpy as np
# 原始数据(已定义为 <u14 data def processed_data print><p><strong>注意事项:</strong> </p>
<ul><li>np.vectorize 并非真正意义上的底层向量化(不提升 C 层性能),但对 <u14><li>若后续需将清洗后的字符串转为数值(如 float 或 int),建议使用 processed_data.astype(float) —— 此时需确保所有列均为有效数字格式(如股票代码列 'ALIOR' 会报错,应按列选择性转换);</li>
<li>对于超大规模数组(千万级元素),可考虑结合 numba 或 pandas.Series.str(先转 DataFrame)进一步优化,但本方案已满足绝大多数业务场景需求。</li></u14>
</li></ul>
<p>该方法简洁、可靠、易维护,是 NumPy 字符串预处理的标准实践之一。</p></u14>










