有什么办法可以使此功能更快?我正在尝试通过以下方式创建3 x 3 alpha_j矩阵:
我有,
def a_j(r, a, A):
alph = np.array([[0,0,0],[0,0,0],[0,0,0]],complex)
for i in range(3):
for j in range(3):
alph[i,j] = (r * a * A[i,j])
return alph
答案 0 :(得分:2)
您可以没有任何循环地完成它:
def a_j(r, a, A):
alph = np.array([[0,0,0],[0,0,0],[0,0,0]],complex)
alph= (r * a * A)
return alph
r = 5
a = 10
A = np.array([[2,6,1],[0,4,9],[1,8,3]],complex)
ans = a_j(r,a,A)
print(ans)
此代码的输出:
[[ 100.+0.j 300.+0.j 50.+0.j]
[ 0.+0.j 200.+0.j 450.+0.j]
[ 50.+0.j 400.+0.j 150.+0.j]]
代码输出:
[[ 100.+0.j 300.+0.j 50.+0.j]
[ 0.+0.j 200.+0.j 450.+0.j]
[ 50.+0.j 400.+0.j 150.+0.j]]
通知输出相同,意味着您无需任何for循环就可以做到
答案 1 :(得分:0)
您可以使用理解列表,如下所示:
def a_j(r, a, A):
return np.array([[np.complex(r * a * A[i,j]) for j in range(3)] for i in range(3)])