我得到了代码的'ComplexWarning':
import numpy as np
A = [np.array([[0.+0.j],
[0.+0.j],
[0.+0.j],
[0.+0.j],
[0.+0.j],
[0.+0.j]]), np.array([[ 0.+0.j],
[0.+0.j],
[0.+0.j],
[0.+0.j],
[0.+0.j],
[0.+0.j]]), np.array([[ 0.+0.j],
[0.+0.j],
[0.+0.j],
[0.+0.j],
[0.+0.j],
[0.+0.j]]), np.array([[ 0.+0.j],
[0.+0.j],
[0.+0.j],
[0.+0.j],
[0.+0.j],
[0.+0.j]]), np.array([[ 0.+0.j],
[0.+0.j],
[0.+0.j],
[0.+0.j],
[0.+0.00235702j],
[0.+0.j]]), np.array([[0],
[0],
[0],
[0],
[0],
[1]])]
for k in range(0, 6):
C[k] = A[0][k] + A[1][k] + A[2][k] + A[3][k] + A[4][k] + A[5][k]
ComplexWarning: Casting complex values to real discards the imaginary part
所以它确实以某种方式总结,但丢弃虚部和我的结果是:
C = [[0],[0],[0],[0],[0],[1]]
我的问题是,当我手动操作时,例如
手动累加每一行C[0] = A[0][0] + A[1][0] + A[2][0] + A[3][0] + A[4][0] + A[5][0]
a.s.o。,它运行正常,没有任何错误,我的结果是
C = [[0.+0.j],[0.+0.j],[0.+0.j],[0.+0.j],[0.+0.00235702j],[1.+0.j]]
我没有看到,为什么使用循环来总结我的矩阵的行会产生错误,而不是这样。而且我不能手工完成,因为它只是一个更大计算中的一小部分,最终关闭最终完成这个求和大约6000次。 有人以前看过这个错误,知道该怎么办吗?