当前位置: 首页 > 面试题库 >

如何沿着两个轴重复数组的元素?

郏稳
2023-03-14
问题内容

我想分别沿轴0和轴1重复数组元素M和N次:

import numpy as np

a = np.arange(12).reshape(3, 4)
b = a.repeat(2, 0).repeat(2, 1)
print(b)

[[ 0  0  1  1  2  2  3  3]
 [ 0  0  1  1  2  2  3  3]
 [ 4  4  5  5  6  6  7  7]
 [ 4  4  5  5  6  6  7  7]
 [ 8  8  9  9 10 10 11 11]
 [ 8  8  9  9 10 10 11 11]]

这行得通,但是我想知道有没有更好的方法而无需创建临时数组。


问题答案:

您可以使用kronecker产品,请参阅numpy.kron

>>> a = np.arange(12).reshape(3,4)
>>> print np.kron(a, np.ones((2,2), dtype=a.dtype))
[[ 0  0  1  1  2  2  3  3]
 [ 0  0  1  1  2  2  3  3]
 [ 4  4  5  5  6  6  7  7]
 [ 4  4  5  5  6  6  7  7]
 [ 8  8  9  9 10 10 11 11]
 [ 8  8  9  9 10 10 11 11]]

不过,您原来的方法也可以!



 类似资料:
  • 问题内容: 我有一个二维NumPy数组。我知道如何获取轴上的最大值: 如何获得最大元素的索引?我想代替输出。 问题答案:

  • 我正在为我的游戏设计一个区块旋转组件,我遇到了一个我无法理解的小问题。基本上,我希望能够沿所有三个轴旋转网格组件。玩家一次只能旋转一个轴,旋转90度或-90度。我还希望玩家始终根据世界的X、Y和Z轴旋转网格,而不是块的相对轴,它将随着旋转而改变。我如何做到这一点? 无旋转的网格: 网格沿X轴逆时针旋转90度: 这里的问题是,如果我想沿着Y轴旋转块,相反,它将沿着Z轴旋转块,因为块现在被旋转。我如何

  • 问题内容: 假设我有一个数组,即: 然后我要生成一个3D数组,其中新轴上的所有数组都相等,即:相同的数组,但是now 。 我怎么才能得到它? 问题答案: 从开始引入一个新轴,并与一起复制。这应该适用于将任何暗淡数组扩展为暗淡数组。实施将是- 样品运行- 提高记忆效率 我们还可以使用生成视图并实现几乎免费的运行时。更多信息- 。因此,只需-

  • 假设我有这个数组: 我该如何让它做这样的事情呢 我不知道什么谷歌得到一个答案,因为我所有的结果都是不同的问题,因为我想这不是太常见的事情无论如何,任何和所有的帮助都将不胜感激:)

  • 有两个数组: 我是如何做到的: 我想用RxJ或其他。 如果值不是数字,例如Object。