Создание массива путем добавления к форме существующего массива - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть массив NumPy:

X = np.array([[1,0,1],
              [1,1,1],
              [0,1,0],
              [1,0,1]])

, который имеет форму (4,3)

Я хотел бы изменить эту форму на (4,4), добавив 1 во второе измерениемассива, через:

X_b = np.ones((X.shape+(0,1)))

но я получаю:

ValueError: could not broadcast input array from shape (4,3) into shape (4,2,0,1)

Как правильно это сделать?

В основном я хочу X_b иметь форму (4,4), если X.shape = (4,3)

1 Ответ

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

Чтобы исправить свой код, сделайте это вместо:

X_b = np.ones(X.shape + np.array((0,1)))

Подвох в том, что X.shape возвращает простой Python tuple.Добавив (0,1), вы фактически выполняли конкатенацию кортежей вместо парного сложения, как вы и планировали.

Конечно, вы также можете просто прикрепить дополнительный столбец к существующему массиву с помощью append:

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