Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Я получил TypeError: только массивы длины 1 могут быть преобразованы в скаляры Python

Автор вопроса: 윤두현Ответов: 1

Я получил сообщение об ошибке ниже. Я нашел несколько вопросов в Stack Overflow и попробовал их решения, но это не сработало.

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: только массивы длины 1 могут быть преобразованы в скаляры Python

numpytypeerror

Ответы

Ответ 1 · Roelant

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

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

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

c = np.exp(a)

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы