TypeError: невозможно умножить последовательность на не-int типа 'numpy.float64'

Я хочу вычислить выражение, в котором есть «arctanh». Каждый раз я получаю следующую ошибку: «Ошибка типа: невозможно умножить последовательность на не-int типа« numpy.float64 »».

Я попытался сделать «w» комплексным числом, чтобы избежать другой ошибки, связанной с созданием nan с помощью arctanh: «RuntimeWarning: в arctanh обнаружено недопустимое значение.

Спасибо за любую помощь или предложение.

import numpy as np
e = np.arange (0.01,2000, 0.1)
w = [complex(i, 0) for i in e]
wtr = 10


etr_1 = (((1)/((np.pi*(np.power(w, 2)))+ np.pi))*(np.abs(((-2*np.arctan(wtr))*w)-(2*np.arctanh(((np.power(w, 2)) + 1)/(-1*(np.power(w, 2)) + 2*(np.power(wtr, 2)) +1))*(w))+ (np.pi*w) -(2*np.arctanh(w/(wtr))))))

person Hey There    schedule 25.11.2018    source источник
comment
Вы пытаетесь умножить несовместимые типы, например. [1, 2] * 2.0 вызовет такую ​​​​ошибку. Обратите внимание, что списки Python — это не то же самое, что массивы numpy. Попробуйте удалить части кода и посмотрите, в чем проблема. stackoverflow.com/help/mcve   -  person gilch    schedule 25.11.2018


Ответы (1)


Вы получаете сообщение об ошибке из-за этой части вашего утверждения: np.arctanh(w / (wtr)). Причина этого в том, что w — это список комплексных чисел, а wtr — нет. Я не совсем уверен в том, что вы пытаетесь сделать. Поэтому я не совсем уверен, как исправить проблему. Удачи.

person The Pineapple    schedule 25.11.2018