gpt4 book ai didi

python - 在 Numpy 中复制子数组的列

转载 作者:行者123 更新时间:2023-11-30 23:06:26 24 4
gpt4 key购买 nike

给定一个形状为 (100,8192) 的数组 X,我想为 100 个外部维度中的每一个维度复制长度为 8192 的子数组 10 次,以便生成的数组具有形状 (100,8192,10)。

我对tile函数的工作原理有点困惑,我只能复制一维数组(尽管可能不是很优雅),例如如果给我一个形状为 (8192) 的一维数组,我可以通过复制该一维数组来创建一个二维数组,如下所示: np.tile(x,(10,1)).transpose() ,但是一旦我尝试在二维数组上执行此操作,我就不知道当您提供值元组时瓦片函数实际上在做什么,文档对此有点不清楚。

有人可以告诉我该怎么做吗?

编辑:示例,给定二维数组:

In [229]: x
Out[229]:
array([[1, 2, 3],
[4, 5, 6]])

在本例中,我想通过沿列复制 3 次来获得以下数组:

In [233]: y
Out[233]:
array([[[1, 1, 1],
[2, 2, 2],
[3, 3, 3]],

[[4, 4, 4],
[5, 5, 5],
[6, 6, 6]]])

最佳答案

一种方法是使用np.repeat,例如:

令 X 为形状为 (100,8192) 的数组,要将维度为 8192 的子数组在列维度上复制 10 次,请执行以下操作:

X_new = np.repeat(X,10).reshape(100,8192,10)

关于python - 在 Numpy 中复制子数组的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32667222/

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