Добавление столбца единиц в массив numpy - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь просто добавить столбец единиц в массив numpy, но не могу найти простого решения, которое, на мой взгляд, должно быть прямым ответом. Количество строк в моем массиве может измениться, поэтому решение необходимо обобщить.

import numpy as np
X = np.array([[1,45,23,56,34,23], 
              [2,46,24,57,35,23]])

Мой желаемый результат:

array([[ 1, 45, 23, 56, 34, 23, 1],
       [ 2, 46, 24, 57, 35, 23, 1]])

Я пытался использовать np.append и np.insert, но они либо выравнивают массив, либо заменяют значения.

Спасибо.

Ответы [ 4 ]

2 голосов
/ 04 мая 2020

вы можете сделать hstack:

np.hstack((X,np.ones([X.shape[0],1], X.dtype)))

Вывод:

array([[ 1, 45, 23, 56, 34, 23,  1],
       [ 2, 46, 24, 57, 35, 23,  1]])
0 голосов
/ 04 мая 2020

Вы можете использовать numpy .insert следующим образом:

import numpy as np
X = np.array([[1,45,23,56,34,23], [2,46,24,57,35,23]])
X1 = np.insert(X, X.shape[1], 1, axis=1)
print(X1)

Вывод:

[[ 1 45 23 56 34 23  1]
 [ 2 46 24 57 35 23  1]]
0 голосов
/ 04 мая 2020

Вы можете использовать numpy .c_

np.c_[X, [1, 1]]
0 голосов
/ 04 мая 2020

Вы можете использовать append, но вы должны указать ему, с каким axis вы хотите, чтобы он работал вместе:

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