Python: извлечь только некоторые атрибуты из CSV-файла в массив NumPy - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь разработать нейронную сеть, которая читает входные данные из файла CSV.Я использую это как учебное пособие: https://machinelearningmastery.com/multi-class-classification-tutorial-keras-deep-learning-library/

Я понимаю, как ввод хранится в X

X = dataset[:,0:4].astype(float)

Проблема в том, что набор данных, который я собираюсь использовать, имеет более100 атрибутов на запись (в отличие от этого здесь только 4).Я выяснил, какие из них я хочу использовать в качестве входных данных, но я не могу найти способ создать X, имеющий тот же формат, что и в примере.Я пытался numpy.vstack, но не было желаемых результатов.

Может ли кто-нибудь дать мне пример того, как я мог бы создать X, включающий только указанные атрибуты?

1 Ответ

0 голосов
/ 26 июня 2018

Обычной процедурой является использование pandas, которая позволяет мягкое преобразование dtype через pandas.DataFrame.infer_objects , за которым следует pandas.DataFrame.values ​​, которая возвращает представление Numpy для DataFrame.При желании вы можете указать столбцы для использования с usecols, как предложено выше.

Из документов :

usecols : список или вызов, по умолчанию None

Возвратподмножество столбцов.Если это похоже на список, все элементы должны быть либо позиционными (т. Е. Целочисленные индексы в столбцах документа), либо строками, которые соответствуют именам столбцов, предоставленным пользователем в именах или выведенным из строки (строк) заголовка документа.

Как это выглядит?

df = pd.read_csv(infile, usecols = ['a', 'b'])         # Read
df_dtypes = df.infer_objects()                         # Soft conversion
x = df.values                                          # Numpy array

print df.info()                                        # Inspect -> Object
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 2 columns):
a    3 non-null object
b    3 non-null object
dtypes: object(2)
memory usage: 120.0+ bytes

print df_types.info()                                  # Inspect -> dtype change
  <class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 2 columns):
a    3 non-null int64
b    3 non-null int64
dtypes: int64(2)
memory usage: 120.0 bytes

print x                                                # Inspect -> numpy array
[[7 3]
 [1 2]
 [5 1]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...