假设我有一个像这样的 numpy 数组:
[[[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12],
[13, 14, 15, 16]]]
维度为 (1, 4, 4)
我想将其转换为:
[[[[ 1, 3], [ 2, 4]],
[[ 5, 7], [ 6, 8]],
[[ 9, 11], [10, 12]],
[[13, 15], [14, 16]]]]
其维度为 (1, 4, 2, 2)。
numpy 中是否有任何函数可以用来修改数组?
- array.reshape() 很接近,但不完全是因为它不能交换项目。
我想避免直接使用 python,因为此代码用于为神经网络输入格式化一些数据,而 python 的速度(考虑到实际数组的大小)可能是一个瓶颈。
最佳答案
你很接近。您唯一需要做的就是交换第三轴和第四轴:
>>> np.swapaxes(a.reshape(1,4,2,2), 2,3)
array([[[[ 1, 3],
[ 2, 4]],
[[ 5, 7],
[ 6, 8]],
[[ 9, 11],
[10, 12]],
[[13, 15],
[14, 16]]]])
关于python - 将第 N 维中的项目拆分并交换到第 N+1 维,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58252083/