Как преобразовать np.NaN в строку в ndarray/list?Python

Программы на Python
Anonymous
Как преобразовать np.NaN в строку в ndarray/list?

Сообщение Anonymous »

У меня есть простой код Python:
l2 =[4,np.nan, 5.1]
a2 = np.array(l2)

a3 = np.where(np.isnan(a2), '3.3', a2)
a3 = a3.astype(float)
print(a3)

a3 = np.where(np.isnan(a2), 'x', a2)
print(a3)

Приведенный выше код создает две строки:
[4. 3.3 5.1]
['4.0' 'x' '5.1']

Мой вопрос заключается в том, как преобразовать np.NaN в строку, но без изменения других значений.
Там, где должны быть числа, останется как число, но только там, где находится nan, должна быть новая строка. Вот так:
[4.0 'x' 5.1]

ОБНОВЛЕНИЕ:
Если мы не можем смешивать типы данных в Numpy ndarray, я нашел новое решение:
l2 =[4,np.nan, 5.1, np.nan, 3]
a2 = np.array(l2)

idxNan = (np.argwhere(np.isnan(l2)))
for idx in idxNan:
l2[idx[0]] = 'x'
print(l2)

Приведенный выше код дал мне правильный результат:
[4, 'x', 5.1, 'x', 3]


Подробнее здесь: https://stackoverflow.com/questions/785 ... array-list

Вернуться в «Python»