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

如何将NumPy数组中整数和千分位格式字符串统一转换为浮点数

解决方案

你的数组中混合了整数类型元素和欧洲格式的数字字符串(.为千分位分隔符,,为小数点),直接转换会报错,需要先对字符串做标准化处理再转浮点数。

方法1:列表推导式写法(适合小数据量,可读性高)

import numpy as np

# 替换为你自己的原始object数组
obj_arr = np.array([758, 762, 762, '1.870,00', '1.870,00', '1.870,00'], dtype=object)

float_arr = np.array([
    float(str(x).replace('.', '').replace(',', '.')) 
    for x in obj_arr
])

方法2:向量化写法(适合大数据量,性能更高)

利用NumPy内置的字符操作函数实现全量处理,避免Python级循环:

import numpy as np

obj_arr = np.array([758, 762, 762, '1.870,00', '1.870,00', '1.870,00'], dtype=object)

# 先把所有元素转成字符串
str_arr = obj_arr.astype(str)
# 批量删除千分位的点,替换逗号为标准小数点
processed_str = np.char.replace(np.char.replace(str_arr, '.', ''), ',', '.')
# 转浮点数
float_arr = processed_str.astype(float)

两种方法输出的float_arr都符合你的预期:

array([ 758.,  762.,  762., 1870., 1870., 1870.])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 23:06:07