Skip to main content
 首页 » 编程设计

python之截断后将 Numpy 字符串数组转换为 float

2025年05月04日28dflying

我在下面给出了一个 numpy 数组:

array([[' 0.12E'], 
       [' 0.00F'], 
       [' 0.00F'], 
       ...,  
       [' 0.00G'], 
       [' 0.00G'], 
       [' 0.00G']], dtype=object) 

我需要删除 E F 和 G,并将数组中的每个元素转换为 Float。我该怎么做??

请您参考如下方法:

选项 1
使用 numpy 字符串类型自动修剪最后一个字符。然后转换为float
如果您可以相信所有条目都是 6 个字符长并且以需要修剪的字符结尾:...

a.astype('<U5').astype(float) 
 
array([[ 0.12], 
       [ 0.  ], 
       [ 0.  ], 
       [ 0.  ], 
       [ 0.  ], 
       [ 0.  ]]) 

选项 2
使用 pd.DataFrame.replace 和 regex=True 删除非数字,然后转换为 float 。

pd.DataFrame(a).replace('[^\d\.]', '', regex=True).astype(float).values 
 
array([[ 0.12], 
       [ 0.  ], 
       [ 0.  ], 
       [ 0.  ], 
       [ 0.  ], 
       [ 0.  ]])