我试图弄清楚如何更改数组,例如:
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
a.shape
(3,3)
进入:
a = np.array([[[1,255,255],[2,255,255],[3,255,255]],
[4,255,255],[5,255,255],[6,255,255]],
[7,255,255],[8,255,255],[9,255,255]]])
a.shape
(3,3,3)
基本上转动单个元素
1
成[1, 255, 255]
我玩过
reshape
但我似乎无法在没有缓慢的情况下获得执行此操作的逻辑 for
环形。
最佳答案
一种解决方案是创建一个所需形状的新数组,填充 255
s 使用 np.full
,然后使用来自 a
的值填充每个内部列表的索引 0 值.
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
b = np.full((3, 3, 3), 255)
b[:, :, 0] = a
输出是
array([[[ 1, 255, 255],
[ 2, 255, 255],
[ 3, 255, 255]],
[[ 4, 255, 255],
[ 5, 255, 255],
[ 6, 255, 255]],
[[ 7, 255, 255],
[ 8, 255, 255],
[ 9, 255, 255]]])
关于python - numpy 数组形状更改/扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61911868/