【发布时间】:2021-08-16 21:34:18
【问题描述】:
假设我有以下 numpy 数组
[[[1 2 3]
[4 5 6]
[7 8 9]]
[[1 2 3]
[4 5 6]
[7 8 9]]
[[1 2 3]
[4 5 6]
[7 8 9]]]
我希望能够调整此数组的大小(使其沿轴变小或变大),但现有元素具有与调整大小之前相同的索引。因此,如果我将轴 2 的大小减少一个元素,它会如下所示:
[[[1 2]
[4 5]
[7 8]]
[[1 2]
[4 5]
[7 8]]
[[1 2]
[4 5]
[7 8]]]
如果我增加轴 1 的大小,它会是这样的:
[[[1 2 3]
[4 5 6]
[7 8 9]
[0 0 0]]
[[1 2 3]
[4 5 6]
[7 8 9]
[0 0 0]]
[[1 2 3]
[4 5 6]
[7 8 9]
[0 0 0]]]
如果不自己实现所有循环和所有内容,我该怎么做?
作为参考,如果我使用 Numpy resize() 函数,并执行 np.resize(my_array, (3, 3, 2)) 将轴 2 的大小从 3 减小到 2,Numpy 只会更改维度的大小并且不会重新组织数组数据本身,这意味着不保留元素的索引:
[[[1 2]
[3 4]
[5 6]]
[[7 8]
[9 1]
[2 3]]
[[4 5]
[6 7]
[8 9]]]
【问题讨论】:
-
看起来像是一个(或两个)连接作业,添加了新的列和行。