Чтение файла данных (abalone) и преобразование в массив numpy - PullRequest
0 голосов
/ 15 ноября 2018

Когда я пытаюсь загрузить файл данных UCI для ушка следующим образом:

dattyp = [('sex',object),('length',float),('diameter',float),('height',float),('whole weight',float),('shucked weight',float),('viscera weight',float),('shell weight',float),('rings',int)]

abalone_data = np.loadtxt('C:/path/abalone.dat',dtype = dattyp, delimiter = ',')

print(abalone_data.shape)
print(abalone_data[0])
>>(4177,)
  ('M',  0.455,  0.365,  0.095,  0.514,  0.2245,  0.101,  0.15, 15)

Abalone_data - это массив с 1 столбцом вместо 9. Позже, когда я хочу добавить другие данные как дополнительныестолбцы, это вызывает у меня проблемы.Есть ли способ преобразовать эти данные в матрицу (4177, 9), где я могу сделать обычное добавление столбцов и т. Д.?
Спасибо!

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

Вы можете добавить распаковать параметр к numpy.loadtxt().Затем вы можете numpy.transpose () недавно созданный массив numpy, чтобы получить необходимую форму массива.

import numpy as np

dattyp = [('sex',object),('length',float),('diameter',float),('height',float),('whole weight',float),('shucked weight',float),('viscera weight',float),('shell weight',float),('rings',int)]

abalone_data = np.loadtxt('C:/path/abalone.dat',dtype = dattyp, delimiter = ',', unpack=True)
abalone_data = np.array((abalone_data)).transpose()

print(abalone_data.shape)

Out:

(4177, 9)

Из документации:

unpack: bool, необязательный

Если True, возвращаемый массив транспонируется, так что аргументы могут быть распакованы с использованием x, y, z = loadtxt (...).При использовании со структурированным типом данных массивы возвращаются для каждого поля.По умолчанию установлено значение False.

0 голосов
/ 15 ноября 2018

Вы можете использовать панд:

import pandas as pd

abalone_data = pd.read_csv('C:/path/abalone.dat', header=None).values
abalone_data.shape

Выход:

(4177, 9)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...