我知道如何在100个元素的数组中填充零:
np.zeros(100)
但如果我想用9填充它呢?
答案 0 :(得分:17)
您可以使用:
a = np.empty(100)
a.fill(9)
或者如果您更喜欢切片语法:
a[...] = 9
np.empty
与np.ones
等相同,但可以加快一点,因为它不会初始化数据。
在较新的numpy版本(1.8或更高版本)中,您还有:
np.full(100, 9)
答案 1 :(得分:1)
如果你只想在整个数组中想要相同的值,而你永远不想改变它,那么你可以通过使其为零来欺骗步伐。通过这种方式,您只需为单个值获取内存。但你会得到一个任何大小和形状的虚拟numpy数组。
>>> import numpy as np
>>> from numpy.lib import stride_tricks
>>> arr = np.array([10])
>>> stride_tricks.as_strided(arr, (10, ), (0, ))
array([10, 10, 10, 10, 10, 10, 10, 10, 10, 10])
但是,请注意,如果修改任何一个元素,数组中的所有值都将被修改。
答案 2 :(得分:1)
此问题已在较早时间讨论过,请参阅NumPy array initialization (fill with identical values),以及哪种方法最快。
答案 3 :(得分:-1)
据我所知,没有专用函数用9s填充数组。所以你应该使用np.empty(100)
创建一个空的(即未初始化的)数组,并在循环中用9s或其他任何东西填充它。