数组的反正切

0 投票
3 回答
1249 浏览
提问于 2025-04-18 14:28

我想要计算一组数组的反正切值。

import numpy as np
import math

比如说(这是一个数组)

x_value=[1 2 3 4 5 6]
a= abs(x_value-125)

这样做是没问题的,但当我想要计算数组a的反正切值时:

b=math.atan(a)

我遇到了这个错误:类型错误:只有长度为1的数组可以转换为Python标量。

我该如何解决这个错误,以便能计算数组a中每个元素的反正切值呢?

3 个回答

0

你可以使用列表推导式:

b = [math.atan(ele) for ele in a]
1

你可以使用列表推导式来对数组中的每个元素应用 atan 函数:

a = np.abs(np.array([1,2,3,4,5,6]) - 125)
b = [np.math.atan(x) for x in a]
3

只需使用 np.arctan 就可以了:

>>> import numpy as np
>>> a = np.array([1,2,3,4,5,6])
>>> a = abs(a - 125)  # could use np.abs.  It does the same thing, but might be more clear that you expect to get an ndarray instance as a result.
>>> a
array([124, 123, 122, 121, 120, 119])
>>> np.arctan(a)
array([ 1.56273199,  1.56266642,  1.56259979,  1.56253205,  1.56246319,
        1.56239316])

撰写回答