【问题标题】:How to enlarge a numpy array如何放大一个numpy数组
【发布时间】:2022-01-23 04:36:20
【问题描述】:

我有一个 2D numpy 数组

import numpy as np
np.array([[1, 2], [3, 4]])
[[1 2]
 [3 4]]

我想把上面的数组放大成如下:

np.array([[1, 1, 2, 2], [1, 1, 2, 2], [3, 3, 4, 4], [3, 3, 4, 4]])
[[1 1 2 2]
 [1 1 2 2]
 [3 3 4 4]
 [3 3 4 4]]

原始数组中的每个元素,因为新数组中的一个 2x2 数组。

我要从第一个数组转到第二个“放大”数组吗?

编辑

这与此处How to "scale" a numpy array? 的缩放问题不同,因为np.kron(a, np.ones((2,2)))a.repeat(2, axis=1).repeat(2, axis=0) 不同

Edit #2 仍在等待移除 [duplicate] 标志

由@Michael Szczesny 发布。 numpy API 发生了细微的变化。这个问题是相关的,因为正在提供更新的答案。

【问题讨论】:

  • 我刚刚发布的解决方案也在链接的问题中。
  • 是的。不知道什么时候变了您可以使用np.ones((2,2), 'bool')

标签: python numpy


【解决方案1】:

您可以使用np.repeat 两次,分别使用axis=1axis=0

out = a.repeat(2, axis=1).repeat(2, axis=0)

输出:

>>> out
array([[1, 1, 2, 2],
       [1, 1, 2, 2],
       [3, 3, 4, 4],
       [3, 3, 4, 4]])

【讨论】:

    猜你喜欢
    • 2011-11-23
    • 1970-01-01
    • 2021-12-15
    • 2022-01-05
    • 2014-04-21
    • 2020-10-22
    • 2018-10-21
    • 2014-06-28
    • 2019-03-31
    相关资源
    最近更新 更多