Numpy 在可能的情况下将字符串转换为浮点数

3 python string floating-point numpy

假设我有一个清单

mix = numpy.array(['1.', '2.', 'a'])
Run Code Online (Sandbox Code Playgroud)

如果可能的话,如何将字符串转换为浮点数,以便我可以获得:

array([1., 2., 'a'])
Run Code Online (Sandbox Code Playgroud)

我尝试使用try / exceptionwith astype(),但它不会转换单个元素。

更新:在csv包中,有csv.QUOTE_NONNUMERIC,我想知道是否numpy支持类似的东西。

mrc*_*rcl 5

没有找到让它工作的功能,所以我写了一些适合你的东西。

def myArrayConverter(arr):

    convertArr = []
    for s in arr.ravel():    
        try:
            value = float32(s)
        except ValueError:
            value = s

        convertArr.append(value)

    return array(convertArr,dtype=object).reshape(arr.shape)
Run Code Online (Sandbox Code Playgroud)

干杯