如何获取np.array中每个数字的指数?

5 投票
2 回答
7830 浏览
提问于 2025-04-17 13:34

假设我有一个数组:

x = np.array([0.00001,0.001])

numpy会把这些数字变成

array([  1.00000000e-05,   1.00000000e-03])

现在我想要得到这些数字的指数,也就是类似这样的:

x.get_exponent()

结果是

[-5,-3]

2 个回答

3

使用 log10 函数

In [49]: x = np.array([0.00001,0.001])
In [50]: np.log10(x)
Out[50]: array([-5., -3.])
19

你可以使用 np.floor(np.log10(np.abs(x))) 这个方法。

举个例子:

In [13]: x = np.array([0.00001, -0.001, 0.0000025, 0.09, -13.25, 9876.5])

In [14]: x
Out[14]: 
array([  1.00000000e-05,  -1.00000000e-03,   2.50000000e-06,
         9.00000000e-02,  -1.32500000e+01,   9.87650000e+03])

In [15]: np.floor(np.log10(np.abs(x))).astype(int)
Out[15]: array([-5, -3, -6, -2,  1,  3])

撰写回答