Как изменить многие столбцы к одному - PullRequest
0 голосов
/ 28 января 2020

Здравствуйте, у меня есть набор данных, который содержит много столбцов и 214 строк, когда я печатаю данные, это выглядит так:

[[ 1.52101 13.64     4.49    ...  8.75     0.       0.     ]
 [ 1.51761 13.89     3.6     ...  7.83     0.       0.     ]
 [ 1.51618 13.53     3.55    ...  7.78     0.       0.     ]
 ...
 [ 1.52065 14.36     0.      ...  8.44     1.64     0.     ]
 [ 1.51651 14.38     0.      ...  8.48     1.57     0.     ]
 [ 1.51711 14.23     0.      ...  8.62     1.67     0.     ]]

Теперь я хотел бы изменить его, но когда я звоню:

X = X.reshape(214, 1)

Я получил

cannot reshape array of size 1926 into shape (214,1)

Можно изменить это до 214,1? Я не могу изменить его до 1926,1 или, например, 214,9 мне нужно 214,1. Возможно, я не готовлю правильные данные. Мой полный код

names = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k']
dataset = pandas.read_csv('./glass.data', sep= ',', names = names)
Y = np.array(dataset['k'].values)
Y = Y.reshape(214, 1)
del dataset['k']
del dataset['a']
X = np.array(dataset.values)
print X
X = X.reshape(214, 1)
print X

1 Ответ

1 голос
/ 28 января 2020

Насколько я понимаю, у вас есть массив (X) размером 1926, т.е. ваш массив содержит 1926 элементов. Теперь вы хотите поместить 1926 элементов в массив формы (214,1), в котором есть место только для 214 элементов.

cannot reshape array of size 1926 into shape (214,1)

Это должно сказать вам, что невозможно вписать 1926 элементов в массив только с 214 пятнами.

X = np.array(dataset.values)

Эта строка может быть вашей ошибкой. Вы действительно хотите, чтобы все значения из набора данных были сохранены в X? Или, может быть, вам нужны только значения из одного столбца (скажем, «b»), как вы делали это для Y (с «k»).

X = np.array(dataset['b'].values)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...