如何创建N个相同值的Numpy数组?

时间:2015-07-07 14:10:08

标签: python arrays numpy

这肯定是一个简单的问题:

如何创建N个值的numpy数组,所有相同的值?

例如,numpy.arange(10)创建10个从0到9的整数值。

array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

我想创建一个由10个相同整数值组成的numpy数组,

array([3, 3, 3, 3, 3, 3, 3, 3, 3, 3])

3 个答案:

答案 0 :(得分:8)

使用numpy.full()

>> import numpy as np

>> np.full(
    shape=10,
    fill_value=3,
    dtype=np.int)

array([3, 3, 3, 3, 3, 3, 3, 3, 3, 3])

答案 1 :(得分:1)

很容易 1)我们使用了range函数:-

arr3=np.arange(0,10)
output=array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

2)我们使用一个函数提供1,然后乘以3:-

arr4=np.ones(10)*3
output=array([3., 3., 3., 3., 3., 3., 3., 3., 3., 3.])

答案 2 :(得分:0)

另一种(更快)的方法是使用np.empty()np.fill()

import numpy as np

shape = 10
value = 3


myarray = np.empty(shape, dtype=np.int)
myarray.fill(value)

时间比较

我机器上的上述方法适用于:

951 ns ± 14 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
使用np.full(shape=shape, fill_value=value, dtype=np.int)

vs执行以下操作:

1.66 µs ± 24.3 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
使用np.repeat(value, shape)

vs执行以下操作:

2.77 µs ± 41.3 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
使用np.ones(shape) * value

vs执行以下操作:

2.71 µs ± 56.2 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

我发现它总是更快一些。