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]])
可以说 , 这是创建填充有某些值的数组 的 方式,因为它明确描述了要实现的目标(并且由于执行非常具体的任务,因此原则上非常高效)。