2015-03-15 4 views
1

У меня есть файл arff в качестве входных данных. Я прочитал файл arff и поместил значения элемента в numpy ndarray.Now мой файл arff содержит некоторые '?' как некоторые из элементов. В основном это значения свойств матриц, рассчитанные по anamod. Независимо от того, какие значения anamod не могут рассчитать, он подключается к символу '?' характер для тех. Я хочу сделать предсказание Naive baiyes, Random Forest и т. Д. Для моих данных. Так что обрабатывать '?' Я хочу использовать импьютер, который похож на: Imputer (missing_values ​​= 'NaN', strategy = 'mean', axis = 0) Недостающие_значения имеют тип строки, конечно. Мой вопрос заключается в том, как изменить тип нескольких элементов ndarray numpy на строку из float. Я использовал my_numpy_ndarray.astype ('str') == 'NaN', чтобы проверить значения NaN, и я мог бы сделать это успешно, но я не уверен, как изменить тип элемента float numpyndarray на строку.изменить тип элемента float numpyndarray на строку

+0

не забывайте, что вы можете [принять один из ответов] (http://meta.stackexchange.com/a/5235), а также [перекрыть их] (http://meta.stackexchange.com/a/ 173400/215829), если вы хотите –

+1

спасибо. Я только начал задавать вопросы в stackoverflow, поэтому не знаю много о метаданных. Благодарю. – user2151788

ответ

0

Вы не можете изменить тип деталей обычного ndarray. Для параметра ndarray требуется, чтобы все элементы массива имели одинаковый тип numpy (dtype), так что математические операции могут быть выполнены эффективно. Единственный способ сделать это - изменить dtype на object, что позволяет хранить произвольные типы в каждом элементе. Однако это значительно сократит скорость большинства операций и сделает некоторые операции невозможными или ненадежными (например, добавление двух массивов).

+0

Спасибо, ребята. :) Я прошел через это с помощью ваших комментариев. – user2151788

Смежные вопросы