在循环中总结复杂值时的“ComplexWarning”

时间:2016-05-27 10:55:18

标签: python arrays numpy multidimensional-array complex-numbers

我得到了代码的'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次。 有人以前看过这个错误,知道该怎么办吗?

0 个答案:

没有答案