gpt4 book ai didi

python - 在 numpy 中连接维度

转载 作者:行者123 更新时间:2023-11-30 23:20:59 25 4
gpt4 key购买 nike

我有x

[[[ 1  2  3]
[ 4 5 6]]

[[ 7 8 9]
[10 11 12]]] # shape (2,2,3)

我要

[[ 1  2  3  4  5  6]
[ 7 8 9 10 11 12]] # shape (2,6)

也就是说,我想连接中间维度的所有项目。

在这种特殊情况下我可以通过以下方式得到这个结果

x.reshape(2, 2*3)

或更抽象地说

x.reshape(x.shape[0], x.shape[1]*x.shape[2])

是否有一种紧凑的、numpythonic 的方法来获得任意维度 x 的结果,最好不需要自己进行任何索引算术?

我一直在使用concatenate函数,但没有成功。

最佳答案

如果您只关心第一个维度的大小,您可以使用

x.reshape(x.shape[0], -1)

-1 表示该维度的大小将隐式确定。这也适用于更高维度的数组,前提是新维度的元组中不超过一个 -1

您还可以通过直接分配数组的 shape 属性来完成此操作:

x.shape = (x.shape[0], -1)

使用x.reshape(...)和直接分配给x.shape之间的主要区别在于,前者可能会创建一个副本(如果不是)不可能在不修改底层内存缓冲区的情况下更改 x 的形状(例如,如果 x 不连续),后者将永远不会生成副本并会引发改为 AttributeError

关于python - 在 numpy 中连接维度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25146874/

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