gpt4 book ai didi

python - 将 hstack 应用于矩阵数组

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

给定一个矩阵数组 matrices_w 我想在每个矩阵上应用 np.hstack 函数:

matrices_w = np.asarray([[[1,2,3],[4,5,6]],[[9,8,7],[6,5,4]]])
array([[[1, 2, 3],
[4, 5, 6]],

[[9, 8, 7],
[6, 5, 4]]])

这样期望的结果是:

array([[1, 2, 3, 4, 5, 6],
[9, 8, 7, 6, 5, 4]])

到目前为止,我已经尝试了几个函数,包括 np.apply_along_axis 但无法正常工作。

最佳答案

在这种情况下,reshape 是最简单和最快的方法。但是弄清楚为什么 hstack 不起作用可能是值得的。

In [192]: arr = np.array([[[1,2,3],[4,5,6]],[[9,8,7],[6,5,4]]])              

hstack 运行,但产生不同的顺序:

In [193]: np.hstack(arr)                                                     
Out[193]:
array([[1, 2, 3, 9, 8, 7],
[4, 5, 6, 6, 5, 4]])

那是因为hstack把数组的第一个维度当作一个列表,把两个数组连接起来:

In [194]: np.concatenate([arr[0],arr[1]], axis=-1)                           
Out[194]:
array([[1, 2, 3, 9, 8, 7],
[4, 5, 6, 6, 5, 4]])

如果我们将它拆分为二维列表,我们会得到您想要的顺序:

In [195]: np.concatenate([arr[:,0],arr[:,1]], axis=-1)                       
Out[195]:
array([[1, 2, 3, 4, 5, 6],
[9, 8, 7, 6, 5, 4]])

关于python - 将 hstack 应用于矩阵数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56209401/

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