【发布时间】:2022-10-24 07:05:29
【问题描述】:
我想计算一个 numpy 负数数组的平方根。
我尝试使用np.sqrt(),但它给出了错误,因为域。
然后,我发现对于复数,您可以使用cmath.sqrt(x),但它也会给我一个错误。
这是我的代码
import numpy as np
import cmath
from cmath import sqrt
x = np.arange(-10, 10, 0.01)
E = 1
p1 = cmath.sqrt(E - x**2)
并得到了这个错误
Traceback (most recent call last):
File "C:\Users\os.py", line 49, in <module>
p1 = cmath.sqrt(E - x**2)
TypeError: only length-1 arrays can be converted to Python scalars
后来我尝试使用 for 循环,这也是不可能的。 这是代码:
import numpy as np
import cmath
from cmath import sqrt
x = np.arange(-10, 10, 0.01)
E = 1
for i in range(0, len(x)):
p1 = cmath.sqrt(E - x(i)**2)
和消息错误
Traceback (most recent call last):
File "C:\Users\os.py", line 48, in <module>
p1 = cmath.sqrt(E - x(i)**2)
TypeError: 'numpy.ndarray' object is not callable
我不知道我做错了什么,有人可以帮助我吗?,拜托。 我需要计算一个 numpy 负数数组的平方根,有人知道该怎么做吗?
【问题讨论】:
-
我使用
emath添加并回答,但还想提一下您在循环版本中遇到的问题只是语法错误。x(i)应该是x[i]。似乎您正在尝试对数组进行索引,但语法却像函数一样调用它。
标签: python arrays numpy sqrt python-cmath