Python中值之间的零填充

Tho*_*mas 2 python numpy python-2.7

我在低通插值期间遇到问题,我必须在处理之前用零填充1D数组.

我有这样的事情:[1 2 3 4 5 6]

我希望有这样的数组[1 0 2 0 3 0 4 0 5 0 6]所以它在数组中是L-1个零,其中L是在零填充之前数组内的所有值的数量.

怎么用Python做?

Blc*_*ght 12

您可以将未填充的值列表分配到另一个零列表的切片中:

original_list = range(1,7)                 # [1,2,3,4,5,6]
padded_list = [0]*(2*len(original_list)-1) # [0,0,0,0,0,0,0,0,0,0,0]
padded_list[::2] = original_list           # [1,0,2,0,3,0,4,0,5,0,6]
Run Code Online (Sandbox Code Playgroud)

这也可以转化为numpy,但正如Jaime在评论中指出的那样,它更容易使用numpy.insert:

import numpy as np

arr = np.arange(1, 7)              # array([1, 2, 3, 4, 5, 6])
np.insert(arr, slice(1, None), 0)  # array([1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6])
Run Code Online (Sandbox Code Playgroud)