gpt4 book ai didi

python - np.array ndmin 参数 : specify placement of added dimensions

转载 作者:太空宇宙 更新时间:2023-11-04 10:27:27 25 4
gpt4 key购买 nike

我有一个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 维的任何地方(并且我想在原始订单),如果不对原始形状进行一系列繁琐的检查,我想不出一种方法来做到这一点。

最佳答案

我会使用 .reshape ...

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

如果要填充到某个维度:

>>> a3d = np.zeros((2,3,4))
>>> ndim = 5
>>> padded_shape = (a3d.shape + (1,)*ndim)[:ndim]
>>> new_a3d = a3d.reshape(padded_shape)
>>> new_a3d.shape
(2, 3, 4, 1, 1)

关于python - np.array ndmin 参数 : specify placement of added dimensions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28637020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com