# NumPy array initialization (fill with identical values)

NumPy 1.8 introduced `np.full()`

, which is a more direct method than `empty()`

followed by `fill()`

for creating an array filled with a certain value:

`>>> np.full((3, 5), 7)array([[ 7., 7., 7., 7., 7.], [ 7., 7., 7., 7., 7.], [ 7., 7., 7., 7., 7.]])>>> np.full((3, 5), 7, dtype=int)array([[7, 7, 7, 7, 7], [7, 7, 7, 7, 7], [7, 7, 7, 7, 7]])`

This is arguably *the* way of creating an array filled with certain values, because it explicitly describes what is being achieved (and it can in principle be very efficient since it performs a very specific task).

**Updated for Numpy 1.7.0:**(Hat-tip to @Rolf Bartstra.)

`a=np.empty(n); a.fill(5)`

is fastest.

In descending speed order:

`%timeit a=np.empty(10000); a.fill(5)100000 loops, best of 3: 5.85 us per loop%timeit a=np.empty(10000); a[:]=5 100000 loops, best of 3: 7.15 us per loop%timeit a=np.ones(10000)*510000 loops, best of 3: 22.9 us per loop%timeit a=np.repeat(5,(10000))10000 loops, best of 3: 81.7 us per loop%timeit a=np.tile(5,[10000])10000 loops, best of 3: 82.9 us per loop`

I believe `fill`

is the fastest way to do this.

`a = np.empty(10)a.fill(7)`

You should also always avoid iterating like you are doing in your example. A simple `a[:] = v`

will accomplish what your iteration does using numpy broadcasting.