如何使用numpy替换数组中的字符?

时间:2018-09-08 04:21:13

标签: python

我有一个数组,该数组由字符串形式的数字值和'?'组成代表缺失值的字符。我该如何用-999999等离群值替换那些字符?

我知道Panda的有一种方法,但是如何仅使用numpy做到这一点?试图通过以下方式找到这些值:

x=X[X=='?']

使用numpy替换,但完全没有运气。有帮助吗?

谢谢

3 个答案:

答案 0 :(得分:4)

它与Pandas方法非常相似:

X[X == '?'] = '-999999'

这时,如果需要,可以使用来将值转换为整数

X = X.astype(int)

例如:

import numpy as np
X = np.array(['1', '2', '3', '?', '5'], dtype=object)
X[X == '?'] = '-999999'
X = X.astype(int)
print(X)
# array([      1,       2,       3, -999999,       5])

答案 1 :(得分:2)

一种方法是使用numpy.place

np.place(X,X=="?",-999999)

答案 2 :(得分:0)

您也可以使用np.where

print(np.where(X == '?', '-999999', X).astype(int))