这肯定是一个简单的问题:
如何创建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])
答案 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)
我发现它总是更快一些。