Как заполнить NPArray другим массивом, начинающимся с ключа в Python? - PullRequest
0 голосов
/ 04 января 2019

У меня есть кадр данных, который называется x.Он состоит из 2 столбцов, которые выглядят следующим образом (712, 2):

     SibSp  Parch
731      0      0
230      1      0
627      0      0
831      1      1
391      0      0
.................

Из-за логистической регрессии, требующей «свободного веса», я строю переменную newX с формой моего xфрейм данных, но пустые значения.

newX = np.zeros(shape=(x.shape[0], x.shape[1] + 1))

Это генерирует массив (712, 3) np:

[[0. 0. 0.]
 [0. 0. 0.]
 [0. 0. 0.]
 ...
 [0. 0. 0.]
 [0. 0. 0.]
 [0. 0. 0.]]

Поскольку первый индекс (0) является свободным весом, я хочуТеперь присвойте мои значения x индексам 1 и 2.

newX[:, 1:] = x

Однако, это дает мне эту ошибку:

Исключение: Несоответствие формы продукта точки, (712,) против (3, 712)

Как я могу заполнить свой newX NPArray массивом x из ключей 1-2, но сохранить все ключи равными 0?

1 Ответ

0 голосов
/ 04 января 2019

Возможно, вам понадобится добавить values после фрейма данных

newX[:, 1:] = x.values
newX
Out[171]: 
array([[0., 0., 0.],
       [0., 1., 0.],
       [0., 0., 0.],
       [0., 1., 1.],
       [0., 0., 0.]])
...