Python: добавить массив numpy к другому - PullRequest
0 голосов
/ 31 марта 2020
arr = np.array([])

b = np.array([1,2,3,4,5])
c = np.array([1,1,1,1,1])

Теперь я хотел бы добавить b и c к обр. Результат, который мне нужен:

[[1,2,3,4,5], [1,1,1,1,1]]

Более общий: Рассматривая такой метод:

def get_array(input):
    # …

Я хочу добавить результат, полученный из get_array(input), к arr, как я добавил b и c в коде выше.

Ответы [ 4 ]

1 голос
/ 31 марта 2020

Одна из многих возможностей:

np.stack([b]*3)

или

arr = np.concatenate([b[np.newaxis]]*3)

Редактировать: Поскольку вы ищете более динамичный c способ:

b = np.array([1, 2, 3, 4, 5])
c = np.array([5, 5, 5, 5, 5])
arr = np.concatenate([b[np.newaxis]]*3)
arr = np.concatenate([arr, c[np.newaxis]])
...
1 голос
/ 31 марта 2020
>>> b = np.array([1,2,3,4,5])
>>> np.tile(b, (3,1))
array([[1, 2, 3, 4, 5],
       [1, 2, 3, 4, 5],
       [1, 2, 3, 4, 5]])
0 голосов
/ 31 марта 2020

Я нашел способ, который может быть не очень эффективным, но он работает:

  1. Преобразование массивов в python -списки
  2. Использование добавления python -списка Метод
  3. Преобразование обратно в массив np

Код:

arr_conv = arr.tolist().append(b.tolist())
arr_conv = arr_conv.append(c.tolist())
arr = np.array(arr_conv)
0 голосов
/ 31 марта 2020

Используйте метод append из numpy в качестве вывода плоской карты. Numpy (из-за оптимизаций) выводит плоскую карту:

arr = np.array([])
b = np.array([1,2,3,4,5])
arr = np.append(arr, b, axis=0)
arr = np.append(arr, b, axis=0)
arr = np.append(arr, b, axis=0)

Использование добавления из библиотеки python (вывод не плоской карты):

arr = []
b = [1,2,3,4,5]
arr.append(b)
arr.append(b)
arr.append(b)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...