代替n维数组,让我们用一个3D数组来说明我的问题:
>>> import numpy as np
>>> arr = np.ones(24).reshape(2, 3, 4)
所以我有一个形状数组(2,3,4)。我想连接/融合第二和第三轴一起得到一个数组的形状(2,12)。你知道吗
我错了,以为我可以用np.concatenate
轻松地做到:
>>> np.concatenate(arr, axis=1).shape
(3, 8)
我找到了一种方法np.滚动轴以及np.连接但随着阵列尺寸的增大,它变得越来越难看:
>>> np.rollaxis(np.concatenate(np.rollaxis(arr, 0, 3), axis=0), 0, 2).shape
(2, 12)
有什么简单的方法可以做到这一点吗?它看起来很琐碎,所以一定存在一些功能,但我似乎找不到它。你知道吗
编辑:实际上我可以使用np.reshape
,这意味着首先计算轴的尺寸。是否可以不事先访问/计算形状?你知道吗
在最新的python版本中,您可以执行以下操作:
我建议不要直接分配给
.shape
,因为它不能在足够不连续的数组上工作。你知道吗假设数组中有
n
维,并且希望融合相邻轴i
和i+1
:相关问题 更多 >
编程相关推荐