如何使用 numpy 生成漩涡型模式?

Cod*_*g99 4 python arrays loops numpy list

我想使用 numpy 创建一个漩涡模式,但不太确定该方法。

Whirpool 从数组中心的 0 开始。每一层漩涡都会增加 1。最后一层漩涡可以有任意数字,但只能在 1 到 10 之间。下图可能有助于理解:-

在此输入图像描述

我想创建一个函数,根据最后一层要使用的数字生成这样的漩涡图案。漩涡的最后一层只能允许 1 到 10(含)之间的数字。这不应该是硬编码。

Chr*_*axs 5

非常简短:

def whirlpool(n):
    center = np.abs(np.arange(-n, n + 1))
    return np.maximum.outer(center, center)
Run Code Online (Sandbox Code Playgroud)