gpt4 book ai didi

python - 通过沿第一个轴复制/重复从 2D 数组创建 3D 数组

转载 作者:太空宇宙 更新时间:2023-11-03 15:00:14 25 4
gpt4 key购买 nike

假设我有一个 n × m 数组,即:

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

我要生成一个 3D 数组 k × n × m,其中新轴上的所有数组都相等,即:相同的数组,但现在 3 × 3 × 3

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

[[ 1., 2., 3.],
[ 4., 5., 6.],
[ 7., 8., 9.]],

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

我怎样才能得到它?

最佳答案

在开头引入一个新轴 None/np.newaxis并与 np.repeat 一起复制.这应该适用于将任何 n dim 数组扩展到 n+1 dim 数组。实现将是 -

np.repeat(arr[None,...],k,axis=0)

sample 运行-

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

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

[[ 1., 2., 3.],
[ 4., 5., 6.],
[ 7., 8., 9.]],

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

View-output 内存效率

我们还可以生成一个 3D View 并使用 np.broadcast_to 实现几乎免费的运行时间.更多信息 - here .因此,只需做 -

np.broadcast_to(arr,(3,)+arr.shape) # repeat 3 times

关于python - 通过沿第一个轴复制/重复从 2D 数组创建 3D 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38607546/

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