Мне нужно создать массив длины NumPy n, каждый элемент которого есть v.
Есть ли что-нибудь лучше, чем:
a = empty(n)
for i in range(n):
a[i] = v
Я знаю zerosи onesработал бы для v = 0, 1. Я мог бы использовать v * ones(n), но он не будет работать, когда будет намного медленнее.vесть None, а также
v * ones(n)все еще ужасно, так как использует дорогостоящее умножение. Замените *на +while, и v + zeros(n)в некоторых случаях он оказывается на удивление хорошим ( stackoverflow.com/questions/5891410/… ).
var = np.empty(n)а затем заполнить его с помощью var [:] = v. (кстати, np.full()так быстро , как это)

a = np.zeros(n)в цикле быстрее, чемa.fill(0). Это противоречит тому, что я ожидал, так как думал,a=np.zeros(n)что нужно будет выделить и инициализировать новую память. Если кто-то может объяснить это, я был бы признателен.