在数组末尾添加n个零。

23

我想在数组中添加n个零。

当你的数组为x时,如果想在末尾添加3个零而不创建2个数组:

x.extend([0]*3)
x = np.array([1.0, 2.0, 1.0, 2.0, 7.0, 9.0, 1.0, 1.0, 3.0, 4.0, 10.0])

我认为这个命令会很有帮助:

x = [x, np.zeros(N)]

但我收到了两个数组,而不是一个大数组:

[array([  1.,   2.,   1.,   2.,   7.,   9.,   1.,   1.,   3.,   4.,  10.]),
 array([ 0.,  0.,  0.,  0.])]

所以我想创建这种类型的数组:

[array([  1.,   2.,   1.,   2.,   7.,   9.,   1.,   1.,   3.,   4.,  10., 0.,  0.,  0.,  0.])]

有人能帮我解决这个相对简单的问题吗?


6
尝试使用 np.concatenate([x,np.zeros(3)])。其中,np.concatenate() 可以将数组连接在一起,[x, np.zeros(3)] 表示要连接的两个数组,np.zeros(3) 是一个包含 3 个零元素的 NumPy 数组。 - o-90
1个回答

37
您可以使用numpy.pad,它在constant模式下默认将0填充到数组的两端,如果指定pad_width = (0, N),则会在右侧填充N个零,左侧不填充任何内容:
N = 4
np.pad(x, (0, N), 'constant')
#array([  1.,   2.,   1.,   2.,   7.,   9.,   1.,   1.,   3.,   4.,  10.,
#         0.,   0.,   0.,   0.])

目前(我不知道在以前的numpy/python版本中是否有所不同),你输入的结果仍然会填充两侧。不确定为什么。 - Your Code Made Me Suicidal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接