簡體   English   中英

添加到 numpy 3D 數組

[英]Add to numpy 3D array

我有一個形狀為(100, 100, 6)的 numpy 數組。 出於我的工作目的,我必須填充此數組以使其第 3 個維度為 8 而不是 6,因此最終形狀應為(100, 100, 8) 我想用零填充,就像這樣。

np.zeros((100, 100, 2))

我已經嘗試了 numpy append 並沿軸 0 和 1 連接,但這並沒有導致我希望附加零填充的方式。

有人可以將我轉發到正確的方向嗎? 謝謝你。

您可以使用np.dstack()

> a = np.ones((100, 100, 6))
> b = np.dstack([a, np.zeros([100, 100, 2])])
> b.shape
(100, 100, 8)
> b
array([[[1, 1, 1, ..., 1, 0, 0],
    [1, 1, 1, ..., 1, 0, 0],
    [1, 1, 1, ..., 1, 0, 0],
     ...

查看此處發布的解決方案

您將要使用numpy.dstack

import numpy as np

a = np.zeros((100, 100, 6))
b = np.zeros((100, 100, 2))

c = np.dstack((a, b))

c 的形狀為(100, 100, 8)

numpy.pad將填充到 ndarray 的每個維度的開頭和/或結尾。 在您的情況下,您只想在三維的末尾填充。

a = np.ones((5,5,2))
b = np.pad(a,pad_width=((0,0),(0,0),(0,2)))

>>> b.shape
(5, 5, 4)

該方法有許多不同的填充模式——用常量零填充是默認模式和值。

暫無
暫無

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

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