gpt4 book ai didi

Python 使用 np.reshape 按特定顺序 reshape 数组

转载 作者:太空宇宙 更新时间:2023-11-04 02:59:01 26 4
gpt4 key购买 nike

我有一个形状为 (1800,144) 的数组 (a) 其中 a[0:900,:] 都是实数,后半部分数组 a[900:1800,:] 全部为零。我想把数组的后半部分水平地放在前半部分旁边,然后将它们推到一起,这样新的数组形状 (a) 将为 (900,288) 并且数组 a,看起来像这样:

[[1,2,3,......,0,0,0],
[1,2,3,......,0,0,0],
...
]

如果这是有道理的。

当我尝试使用 np.reshape(a,(900,288)) 时,它并不完全符合我的要求。它使数组中的所有实数来自 a[0:450,:] 和来自 a[450:900,:] 的零。我希望所有的零都被附加到第二个维度上,这样 a[0:900,0:144] 就是实数并且 a[0:900,144:288] 全部为零。

有没有简单的方法来做到这一点?

最佳答案

您可以使用 numpy.hstack() 连接两个数组:

import numpy as np
np.hstack([a[0:900,], a[900:1800,]])

如果你想将数组拆分成两个以上的子数组,你可以结合使用np.splitnp.hstack,如@HM14已评论:

np.hstack(np.split(a, n))  # assuming len(a) % n == 0 here

关于Python 使用 np.reshape 按特定顺序 reshape 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41560053/

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