python - 在可以创建点源nxn数组的内置函数或模块函数中?
问题描述
只是想知道是否有一个函数可以生成一个 nxn 数组,其中中心具有最大值,边缘的值为 0,如下所示:
0 0 0 0 0 0 0
0 1 1 1 1 1 0
0 1 2 2 2 1 0
0 1 2 3 2 1 0
0 1 2 2 2 1 0
0 1 1 1 1 1 0
0 0 0 0 0 0 0
如果有类似于 np.arange 的东西会很好,我可以插入 n 并获得一个像上面那样的数组,但我不太有希望。
解决方案
我认为没有内置的。但是您可以构建一个:
def get_center(size):
a = np.minimum(np.arange(size), size - 1 - np.arange(size))
return np.minimum(a, a[:,None])
get_center(7)
出去:
array([[0, 0, 0, 0, 0, 0, 0],
[0, 1, 1, 1, 1, 1, 0],
[0, 1, 2, 2, 2, 1, 0],
[0, 1, 2, 3, 2, 1, 0],
[0, 1, 2, 2, 2, 1, 0],
[0, 1, 1, 1, 1, 1, 0],
[0, 0, 0, 0, 0, 0, 0]])
推荐阅读
- regex - vhost 的 Nginx 正则表达式变量为空
- math - 用乘法代替模
- mysql - Laravel 重置密码无效,可能是排序规则类型引起的?
- ios - 如何减小照片大小并在swift4中以参数发送到myserver
- python - pip install 产生“找不到满足要求的版本”
- javascript - es6如何导入已经在另一个js包中定义的
- python - 在 Python 上显示来自 Matlab mat 文件的图像
- java - 用户列表未在 Spring Boot 上显示 - 错误 findAll () 或 thymeleaf
- javascript - Javascript array.filter by element in children
- mysql - MySQL Pivot 将记录转到列出所有数据的列