簡體   English   中英

如何使用第一行/最后一行/列作為填充來創建填充的numpy數組?

[英]How can I make a padded numpy array using the first/last row/column as the pad?

我需要使用第一行和最后一行/列作為填充數據,在所有4個面上高效填充numpy數組。 例如,給出以下內容:

A=np.array([[1    2   3   4],
            [5    6   7   8],
            [9   10  11  12]])

我試圖以:

B=np.array([[1    1    2    3    4    4],
            [1    1    2    3    4    4],
            [5    5    6    7    8    8],
            [9    9   10   11   12   12],
            [9    9   10   11   12   12]])

請注意,原始數組A位於:B [1:-1,1:-1]。 我假設我可以先在一個方向(水平或垂直)上進行填充,以獲取重復的角值。 但是,我的矢量化/數字化使我失望。 (注意:我正在使用的數組很大,我需要多次執行此選項,因此有效地執行此操作很關鍵-我可以使用循環來執行此操作,但是速度很慢)。

使用np.pad ,您可以指定填充的寬度和應用於數組的填充模式。 對於示例數組, edge填充模式可提供所需的結果:

>>> np.pad(A, 1, 'edge')
array([[ 1,  1,  2,  3,  4,  4],
       [ 1,  1,  2,  3,  4,  4],
       [ 5,  5,  6,  7,  8,  8],
       [ 9,  9, 10, 11, 12, 12],
       [ 9,  9, 10, 11, 12, 12]])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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