繁体   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