python 中有没有办法堆叠相同大小的像素阵列(例如 z 堆栈)?
Is there a way in python to stack arrays of pixels of same size (such as a z-stack)?
我只是想澄清一下,例如,我能否以某种方式将一些二维数组堆叠到图像中?
array1=[[0,0,0,0,0]
[0,7.6,7,7.2,0]
[0,7.6,7,0,0]
[0,0,0,0,0]]
array2=[[0,0,0,0,0]
[0,7.6,7,7.2,0]
[0,7.6,7,0,0]
[0,0,0,0,0]]
然后以 3D 形式查看它们 space,例如 link
中的立方体示例
除了尝试使用 geeks for geeks 代码制作其他东西外,我并没有真正尝试太多。因此,任何方向都将不胜感激。
假设 numpy 数组作为输入(不是 python 列表),您可以使用 numpy.dstack
:
out = np.dstack((array1, array2))
输出:
array([[[0. , 0. ],
[0. , 0. ],
[0. , 0. ],
[0. , 0. ],
[0. , 0. ]],
[[0. , 0. ],
[7.6, 7.6],
[7. , 7. ],
[7.2, 7.2],
[0. , 0. ]],
[[0. , 0. ],
[7.6, 7.6],
[7. , 7. ],
[0. , 0. ],
[0. , 0. ]],
[[0. , 0. ],
[0. , 0. ],
[0. , 0. ],
[0. , 0. ],
[0. , 0. ]]])
尽管如此,如果您想绘图,拥有数组列表和循环可能会更容易。
我相信您正在寻找这样的东西。我用不同的颜色和 +z
的附加深度表示深度维度
A = np.array([ [*array1],[*array2] ])
ax = plt.axes(projection='3d')
z_c = ['k','blue']
[ax.scatter(z+A[z,y,x], y, x, c=z_c[z]) for z in range(A.shape[0]) \
for y in range(A.shape[1]) for x in range(A.shape[2])]
我只是想澄清一下,例如,我能否以某种方式将一些二维数组堆叠到图像中?
array1=[[0,0,0,0,0]
[0,7.6,7,7.2,0]
[0,7.6,7,0,0]
[0,0,0,0,0]]
array2=[[0,0,0,0,0]
[0,7.6,7,7.2,0]
[0,7.6,7,0,0]
[0,0,0,0,0]]
然后以 3D 形式查看它们 space,例如 link
中的立方体示例除了尝试使用 geeks for geeks 代码制作其他东西外,我并没有真正尝试太多。因此,任何方向都将不胜感激。
假设 numpy 数组作为输入(不是 python 列表),您可以使用 numpy.dstack
:
out = np.dstack((array1, array2))
输出:
array([[[0. , 0. ],
[0. , 0. ],
[0. , 0. ],
[0. , 0. ],
[0. , 0. ]],
[[0. , 0. ],
[7.6, 7.6],
[7. , 7. ],
[7.2, 7.2],
[0. , 0. ]],
[[0. , 0. ],
[7.6, 7.6],
[7. , 7. ],
[0. , 0. ],
[0. , 0. ]],
[[0. , 0. ],
[0. , 0. ],
[0. , 0. ],
[0. , 0. ],
[0. , 0. ]]])
尽管如此,如果您想绘图,拥有数组列表和循环可能会更容易。
我相信您正在寻找这样的东西。我用不同的颜色和 +z
的附加深度表示深度维度A = np.array([ [*array1],[*array2] ])
ax = plt.axes(projection='3d')
z_c = ['k','blue']
[ax.scatter(z+A[z,y,x], y, x, c=z_c[z]) for z in range(A.shape[0]) \
for y in range(A.shape[1]) for x in range(A.shape[2])]