Как импортировать массив со смешанными числами с плавающей запятой и нечисловыми строками со строками, преобразованными в нули

У меня есть массив, похожий на [1.124, 5.152, 6.235, NaN, 5.124, Infinity], И я хотел бы импортировать его как [1.124, 5.152, 6.235, 0, 5.124, 0], Как мне это сделать?

1 ответ

Решение

Фильтр на основе NaN и Inf:

print([float(ele) if ele not in {"NaN","Infinity"} else 0 for ele in arr])

Если вы используете NumPy.

arr = np.genfromtxt("a.txt", dtype=float,delimiter=",")
print(arr)
arr[~np.isfinite(arr)] = 0
print(arr)
[ 1.124  5.152  6.235    nan  5.124    inf]
[ 1.124  5.152  6.235  0.     5.124  0.  
Другие вопросы по тегам