簡體   English   中英

在數組元素之間插入 N 個零

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM