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