Мені потрібно створити масив 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)це все ще жахливо, оскільки він використовує дороге множення. Замініть *на +хоч і, як 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)що потрібно буде виділити та ініціалізувати нову пам'ять. Якщо хтось може це пояснити, я би вдячний.