【发布时间】:2018-04-29 18:00:45
【问题描述】:
我必须 numpy 字符串数组,看起来像这样:
[['0', '', '12.12', '140.65', '', ''],
['3', '', '10.45', '154.45', '', ''],
['5', '', '15.65', '184.74', '', '']]
我需要做的是用数字替换空单元格,以便将其转换为浮点数组。我不能只删除列,因为在某些情况下,空单元格已被填充。我试过这个:
data = np.char.replace(data, '','0').astype(np.float64)
但这只会在所有字符之间的任何地方放置一个 0,并最终如下:
[[0, 0, 1020.0102, 104000.0605, 0, 0],
[30, 0, 1000.0405, 105040.0405, 0, 0],
[50, 0, 1050.0605, 108040.0704, 0, 0]]
我不明白为什么 python 会那样做?我通过谷歌搜索但找不到 numpy.char.replace 的一个很好的解释。谁能给我解释一下它是如何工作的?
【问题讨论】:
-
您的“空”单元格包含逗号。 Char.replace 将常规字符串替换方法应用于每个元素。
标签: python arrays string numpy replace