NumPy重复元素

5
也许这是一个简单的问题,但是否有一种快速的方式来复制数组中的元素? 对于 3D 数组,它应该像这样工作:
1 2 3
4 5 6
7 8 9

1 1 2 2 3 3
1 1 2 2 3 3
4 4 5 5 6 6
4 4 5 5 6 6
7 7 8 8 9 9
7 7 8 8 9 9

我使用了三个嵌套的for循环进行尝试,但是速度非常慢。
1个回答

6
>>> a = np.array([[1, 2, 3],
                  [4, 5, 6],
                  [7, 8, 9]])
>>> np.repeat(np.repeat(a, 2, 0), 2, 1)

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

很棒的解决方案!但我发现这个函数会将dtype从float64更改为float32。我能避免这种情况吗? - Christian
1
@Christian - 对我来说它并没有改变数据类型。 - eumiro
对不起,是我的错 - 我使用了另一个破坏数据类型的函数。谢谢! :) - Christian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接