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