2017-02-21 33 views
0

Я получил следующее сообщение об ошибке. Я нашел несколько вопросов о переполнении стека, и я попробовал их решения, но это не сработало.У меня есть TypeError: только массивы length-1 могут быть преобразованы в сканеры Python

import numpy as np 

R=0.9999 #Reflectivity 

a=np.arange(0,100000,1,dtype=np.complex) 
b=R**(a) 
c=np.exp(np.complex(0,a)) 

Ошибка:

c=np.exp(np.complex(0,a))

TypeError: only length-1 arrays can be converted to Python scalars

ответ

0

Ошибка в np.complex (0, а). Он не ожидает, что 'a' будет массивом. Сравните с:

c = np.exp(np.complex(0,a[0])). 

Поскольку a - это массив с комплексными числами, вы не можете его рассчитать? (Хотя это приведет к inf + 0.j с учетом размера экспонента)

c = np.exp(a) 
+0

Я хотел бы сделать 'c' новым массивом типа 'b'. Конечно, я могу рассчитать предлагаемые коды. –

+0

c = np.exp (a) возвращает массив с той же длиной, что и b :) – Roelant