python - 生成包含 m 和 n 整数的围栏矩阵

标签 python arrays numpy

当我们给定 m 和 n 正整数时,如何生成一个以 1 和 0 为边界的矩阵。

Input:
4,5


Output
    [1, 1, 1, 1, 1]
    [1, 0, 0, 0, 1]
    [1, 0, 0, 0, 1]
    [1, 1, 1, 1, 1]

我使用了这段代码。是否有其他方法来获取输出

import numpy as np
a=np.ones((m,n),dtype="int")
a[1:-1,1:-1]=0

最佳答案

另一个类似的解决方案,但我更喜欢问题中建议的解决方案:

a=np.zeros((m,n),dtype="int")
a[[0,-1]] = 1
a[:,[0,-1]] = 1

或者根据 @Paul 在评论中的建议:

a[::m-1] = a[:,::n-1] = 1

编辑:根据下面OP的评论:

数组列表:

 a = [x for x in a]

列表数组:

b = np.empty(m,dtype=object)
b[:] = a.tolist()

关于python - 生成包含 m 和 n 整数的围栏矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62689809/

相关文章:

python - DataFrame 到嵌套 JSON

java - 如何比较列表和字符串数组(Java)?

pandas - 将 numpy 数组分配给 Pandas 数据框的特定单元格

python - BeautifulSoup4 find_all() 在 extract() 或 decompose() 之后表现奇怪

python 代码 strftime ("%s") 错误

python - 匹配直到可选的未转义字符/序列之一或换行符

php - php或/和mysql中的多重排序不生效

php - 引用 - 这个错误在 PHP 中意味着什么?

python - 使用 numpy magic 避免三重嵌套 for 循环

python - 如何从python中的mathplot识别某个y值的所有x坐标值