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