Создание массива Numpy без трансляции

#python #arrays #numpy

#python #массивы #numpy

Вопрос:

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

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

Как arr можно создать так, чтобы каждый элемент arr был бы равен one ?

Если я сделаю:

 arr = one * 4
  

Из-за вышеприведенной инструкции broadcasting не дает желаемого поведения.

Комментарии:

1. Какой должна быть форма arr ? Со списками * 4 выполняется репликация, но с массивами это простое числовое умножение.

2. @hpaulj Я принял ответ, он делает именно то, что я хотел

Ответ №1:

Используйте repeat :

 np.repeat(one[np.newaxis, ...], 4, axis=0)
  

В качестве альтернативы вы можете попробовать broadcast_to . Это будет быстрее, но доступно только для чтения:

 np.broadcast_to(one, (4, *one.shape))