NumPy数组初始化(使用相同的值填充)
我需要创建一个长度为NumPy的数组n
,其中每个元素为v
。
还有什么比:
a = empty(n)
for i in range(n):
a[i] = v
我知道zeros
并且ones
可以在v = 0,1下使用。我可以使用v * ones(n)
,但是
在速度会慢很多。v
is上将不起作用None
,而且
-
NumPy的1.8引入
np.full()
,这是比更直接的方法empty()
,接着fill()
用于创建填充有一定值的数组:>>> 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]])
可以说 , 这是创建填充有某些值的数组 的 方式,因为它明确描述了要实现的目标(并且由于执行非常具体的任务,因此原则上非常高效)。