# NumPy array initialization (fill with identical values)

###### Posted By: Anonymous

I need to create a NumPy array of length `n`

, each element of which is `v`

.

Is there anything better than:

```
a = empty(n)
for i in range(n):
a[i] = v
```

I know `zeros`

and `ones`

would work for v = 0, 1. I could use `v * ones(n)`

, but it ~~won’t work when ~~ would be much slower.`v`

is `None`

, and also

## Solution

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).

###### Answered By: Anonymous

Disclaimer: This content is shared under creative common license cc-by-sa 3.0. It is generated from StackExchange Website Network.