import numpy as np
dx = 8
dy = 10
bx = 5.34
by = 1.09
index = np.zeros((dx+dy),dtype = 'int32')
for i in np.arange(1,dy+1):
for j in np.arange (1,dx+1):
if i-by > 0:
theta = 180*np.arctan(abs(j-bx)/(i-by))/np.pi
if theta<10:
r = np.around(np.sqrt((j-bx)**2+(i-by)**2))
r = r.astype(int)
if r>0:
index[r]+=1
output = np.zeros((r, index[r]),dtype='int32')
output[r-1,index[r]-1] = i+(j-1)*dy
此代码应使用 (r, index[r]) 作为索引,并将 i+(j-1)*dy 的值放入相应的索引中,并将其记录在一个新的矩阵/数组中,该矩阵/数组应如下所示 -
array([[ 0, 0, 0],
[ 0, 0, 0],
[44, 0, 0],
[45, 55, 0],
[46, 56, 0],
[47, 57, 0],
[48, 58, 0],
[39, 49, 59],
[40, 50, 60]])
但我有这样的输出,而不是我不想要的 -
array([[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 60]])