python - 调整和拉伸(stretch) NumPy 数组

标签 python arrays resize numpy stretch

我正在使用 Python,我有一个 NumPy像这样的数组:

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

我如何将它拉伸(stretch)成类似下面的样子?

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

这些只是一些示例数组,我实际上会调整几个数组大小,而不仅仅是这些。

我是这方面的新手,我似乎无法完全理解我需要做什么。

最佳答案

@KennyTM 的回答非常巧妙,确实适用于您的情况,但作为一种替代方案,可以为扩展数组提供更多灵 active ,请尝试 np.repeat :

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

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

所以,这完成了沿一个轴重复,沿多个轴(如您所愿),只需嵌套 np.repeat 调用:

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

您还可以改变任何初始行或列的重复次数。例如,如果您希望除最后一行之外的每一行重复两次:

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

这里,当第二个参数是 list 时,它指定逐行(在本例中为行,因为 axis=0)对每一行重复。

关于python - 调整和拉伸(stretch) NumPy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4226386/

相关文章:

python - 您可以导出创建的 python conda 环境供其他人在他们的机器上激活吗?

javascript - 如何合并多维数组?

html - 当我调整窗口大小时,我们如何防止图像使用 HTML-CSS 移动?

c# - 根据标题长度调整窗口大小。

c++ - vector 增长时如何强制执行 move 语义?

python - 在 Heroku 上使用 Tesseract 和 Django

python - Django 管理员不处理 ProtectedError 异常

python - 使 python 列表恒定且不可编辑

python - 强制数组中非零元素之间的最小间距

python - 如何使用 pygame 将整个像素数组放在屏幕上?