输入1:
3
输出1:
[[0 1 0]
[1 1 1]
[0 1 0]]
输入2:
5
输出1:
[[[0 0 1 0 0]
[0 0 1 0 0]
[1 1 1 1 1 1]
[0 0 1 0 0]
[0 0 1 0 0]]
请注意,数组中的1形成类似+的形状。我的逻辑如下所示
a=np.zeros((n,n),dtype='int')
a[-3,:] = 1
a[:,-3] = 1 print(a)
此逻辑仅适用于五维数组,不适用于三维数组。任何人都请使用np.zeros和整数除法来协助获取3维和5维数组的预期输出//
条件:使用整数除法(//)访问中间的行和列,并使用np.zeros()函数
执行此操作
import numpy as np
def plus(size):
a = np.zeros([size,size], dtype = int)
a[int(size/2)] = np.ones(size)
for i in a:
i[int(size/2)] = 1
return a
print(plus(3)) //3 is the size
//Output
[[0 1 0]
[1 1 1]
[0 1 0]]
如您所见,n//2 = 3
为n=5
。因此,这就是您的问题的解决方案,如下所示:
import numpy as np
def create_plus_matrix(n):
a = np.zeros((n,n),dtype='int')
a[-n//2,:] = 1
a[:,-n//2] = 1
return a
所以,让我们尝试一下:
>>> create_plus_matrix(3)
[[0 1 0]
[1 1 1]
[0 1 0]]
>> create_plus_matrix(5)
[[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]]