数组的反正切
我想要计算一组数组的反正切值。
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])