【问题标题】:NumPy slicing squares in 2D arrayNumPy 在二维数组中切片正方形
【发布时间】:2021-08-21 20:37:07
【问题描述】:

我想创建一个由随机高度的正方形组成的高度场地图。给定一个 NxN 数组,我希望每个大小为 MxM(M

0.2, 0.2, 0.6, 0.6, 0.1, 0.1,
0.2, 0.2, 0.6, 0.6, 0.1, 0.1,
0.5, 0.5, 0.3, 0.3, 0.8, 0.8,
0.5, 0.5, 0.3, 0.3, 0.8, 0.8,
0.6, 0.6, 0.4, 0.4, 0.9, 0.9,
0.6, 0.6, 0.4, 0.4, 0.9, 0.9

目前,我想出了一种使用 2 个嵌套 for 循环的低效方法。我敢肯定,使用 NumPy 切片必须有一种高效且优雅的方法。

【问题讨论】:

标签: python arrays numpy


【解决方案1】:

这个使用 repeat() 方法的解决方案应该适用于 N/M 整数。

import numpy as np

N = 6
M = 2

values = np.random.random( [N//M, N//M] )
y = values.repeat( M, axis=0 ).repeat( M, axis=1 )
print(y)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-30
    • 1970-01-01
    • 2020-12-03
    • 2019-05-14
    • 1970-01-01
    • 2015-01-29
    • 2021-11-23
    相关资源
    最近更新 更多