如何使用numpy数组打印一个1里面有0的加号图案!我需要满足所有的案子。我试过下面的代码!!
验证码:
n = int(input())
import numpy as np
x = np.zeros((n,n), dtype=int)
x[3:4] = 0
x[2:-1,2:3] = x[1:-1,2:3] = x[2:3] = x[0:-1,2:3] = x[4:,2:3]= 1
for i in range(n):
for j in range(n):
print(x[i][j] , end = " ")
print()
输出:
[[0 0 1 0 0]
[0 0 1 0 0]
[1 1 1 1 1]
[0 0 1 0 0]
[0 0 1 0 0]]
4条答案
按热度按时间k7fdbhmy1#
您可以使用中间元素为1(或True)的数组进行广播:
输出:
说明:
生成一个True/False数组,其中中间点(indice n//2)为True,所有其他条目为false:
如果你使用
r[,:None]
将这个1x 5数组转换为5x 1的形状,你会得到将这些True/False值乘以1将它们转换为数字,并且当每行在每列上广播时,二进制或运算符
|
将保留中间行和中间列中的数字:请注意,有许多方法可以实现这一点。
下面是另一个例子:
jq6vz3qz2#
**假设是:****输入:**给定一个大于2的正奇数整数“n”。
下面是代码:
读取输入
#导入NumPy包
#创建一个全零的(n x n)数组
#使中间行和中间列都为1
#打印arr的最终值
#整个代码如下:
n=3的样本输出:
n=5的样本输出:
n=7的样本输出:
58wvjzkj3#
这是另一个解决方案,您有一个零数组,并简单地将中间的行和列设置为1:
ffscu2ro4#