[英]Insert N zeros between elements of array
考虑以下数组h_0 = (1/16)*np.array([1,4,6,4,1])
。 在h_0
的每个值(作为函数的一部分)之间插入N
个零的最简单方法是什么? 例如,我得到N=2
>>> array([0.0625, 0. , 0. , 0.25 , 0. , 0. , 0.375 , 0. ,
0. , 0.25 , 0. , 0. , 0.0625])
最简单的可能是切片:
h_0 = (1/16)*np.array([1,4,6,4,1])
N = 2
out = np.zeros(h_0.size * (N+1) - N , h_0.dtype)
out[::N+1] = h_0
out
# array([0.0625, 0. , 0. , 0.25 , 0. , 0. , 0.375 , 0. ,
# 0. , 0.25 , 0. , 0. , 0.0625])
h_0
重塑为 2D,用零堆叠,然后将结果展平:
import numpy as np
h_0 = (1/16)*np.array([1,4,6,4,1])
N = 2
zeros = np.zeros((h_0.shape[0], N))
print(np.hstack((h_0[:,None], zeros)).reshape(-1)[:-N])
# [0.0625 0. 0. 0.25 0. 0. 0.375 0. 0. 0.25 0. 0. 0.0625]
你可以在这里玩这个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.