У меня есть numpy.ndarrayпреобразовать Numpy массив строк в массив Int
a = [['-0.99' '' '0.56' ..., '0.56' '-2.02' '-0.96']]
как преобразовать его в целое?
выход:
a = [[-0.99 0.0 0.56 ..., 0.56 -2.02 -0.96]]
Я хочу 0.0 вместо пустой ''
У меня есть numpy.ndarrayпреобразовать Numpy массив строк в массив Int
a = [['-0.99' '' '0.56' ..., '0.56' '-2.02' '-0.96']]
как преобразовать его в целое?
выход:
a = [[-0.99 0.0 0.56 ..., 0.56 -2.02 -0.96]]
Я хочу 0.0 вместо пустой ''
Это чистый раствор питона и он производит list
.
С помощью простых операций python вы можете сопоставить внутренний список с поплавком. Это преобразует все строковые элементы в float и назначит его нулевым индексированным элементом вашего списка.
a = [['-0.99' , '0.56' , '0.56' , '0.56', '-2.02' , '-0.96']]
a[0] = map(float, a[0])
print a
[[-0.99, 0.56, 0.56, 0.56, -2.02, -0.96]]
Update: Попробуйте следующее
a = [['-0.99' , '0.56' , '0.56' , '0.56', '-2.02' , '-0.96', '', 'nan']]
for _position, _value in enumerate(a[0]):
try:
_new_value = float(_value)
except ValueError:
_new_value = 0.0
a[0][_position] = _new_value
[[-0.99, 0.56, 0.56, 0.56, -2.02, -0.96, 0.0, nan]]
Он перечисляет объекты в списке и попытаться разобрать их float
, если это не удается, то замените его 0.0
что делать, если у него пустая строка. проверьте обновленный вопрос – sam
Хорошо, я обновляю свой ответ и делаю его обработанным всем в вашем списке. Если он не может разобрать, он будет заменен на '0.0' – FallenAngel
Он также сохраняет значения« nan ». – FallenAngel
import numpy as np
a = np.array([['-0.99', '', '0.56', '0.56', '-2.02', '-0.96']])
a[a == ''] = 0.0
a = a.astype(np.float)
Результат:
[[-0.99 0. 0.56 0.56 -2.02 -0.96]]
Ваши значения - это поплавки, а не целые числа. Неясно, нужен ли вам список списков или массив numpy в качестве конечного результата. Вы можете легко получить список списков, как это:
a = a.tolist()
Результат:
[[-0.99, 0.0, 0.56, 0.56, -2.02, -0.96]]
попробовать 'a.astye (флоат)'. Имейте в виду, что a должно быть массивом numpy. – Christian
он говорит, что атрибут AttributeError: 'numpy.ndarray' не имеет атрибута 'astye' – veena
Это 'astype', и это то, что вы ищете – Vincent