np.数组ndmin参数:指定添加维度的位置

2024-09-27 22:30:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个M维np.ndarray,其中M <= N。超过此条件,数组可能具有任何形状。我想把这个数组转换成N维数组,保持0到M的维数不变,M到N的维数设置为1。在

我几乎可以通过使用np.array复制数组并提供ndmin参数来完成此行为。但是,这会将额外的轴放置到“第一个”位置而不是“最后一个”位置:

>>> a3d = np.zeros((2,3,4))
>>> a5d = np.array(a3d, ndmin = 5)
>>> a5d.shape
(1, 1, 2, 3, 4) #actual shape
(2, 3, 4, 1, 1) #desired shape

有没有一种方法可以指定添加的维度应该放在哪里?这里有没有一个可以替代的函数,可以产生我想要的输出?在

显然,在上面的例子中,我可以在操作数组之后按照我想要的顺序放置轴,但是由于原始数组可能有0到5维(我想保持原始尺寸的原始顺序),所以我想不出一种方法,如果不对原始形状进行一系列繁琐的检查。在


Tags: 方法参数顺序npzeros数组条件array
2条回答

我会用.reshape。。。在

>>> a3d = a3d.reshape(a3d.shape + (1, 1))
>>> a3d.shape
(2, 3, 4, 1, 1)

如果您想填充到某个维度:

^{pr2}$

刚准备好

 a5d = np.array(a3d)
 a5d.shape = a3d.shape + (1, 1)
 print a5d.shape

 (2, 3, 4, 1, 1)

因为阵列的物理大小相同

相关问题 更多 >

    热门问题