【问题标题】:How to fill 2d numpy array with some 2d numpy array如何用一些 2d numpy 数组填充 2d numpy 数组
【发布时间】:2020-11-05 14:40:12
【问题描述】:

我有一个 2d numpy 数组,它的大小从一个值变化到另一个值。

如果输入值的维度小于要求,我如何通过填充零来概括大小?

示例:

具有 numpy 数组维度的输入列表:
[(40, 173),
(40, 14),
(40, 56),
(40, 173)]

我希望所有数组都为 (40, 173),如果它的大小更小,则用零填充其余数组。

【问题讨论】:

  • np.zeros((40,173)) 数组开始,将输入数组复制到所需的切片中。
  • 如何将其复制到所需的大小?我想要 (40, 173),但某些输入数据的大小较小。
  • res[a:b, c:d] = input

标签: python numpy


【解决方案1】:

这称为零填充。假设你想填充一个数组A

np.pad(A, ((0, rows), (0, cols)), "constant")

你可以设置:

  • rows = 40 - A.shape[0]
  • cols = 173 - A.shape[1]

更多信息:Zero pad numpy array

【讨论】:

  • 仍然返回相同大小的数组。不知道我是否遗漏了什么
  • 它正在工作。我发现必须保存 np.pad 的输出
【解决方案2】:

分配给zeros 数组:

In [160]: res = np.zeros((40,173),int)                                                               
In [161]: res[0:20, 0:30] = np.ones((20,30),int)  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-04
    • 1970-01-01
    • 2012-06-08
    • 2022-07-08
    • 1970-01-01
    • 2022-08-16
    • 2021-05-09
    • 1970-01-01
    相关资源
    最近更新 更多