我注意到Python公司有两种相似的搜索方法 来寻找数字的绝对值:
第一届
abs(-5)
第二届
import math
math.fabs(-5)
这些方法有何不同?
我注意到Python公司有两种相似的搜索方法 来寻找数字的绝对值:
第一届
abs(-5)
第二届
import math
math.fabs(-5)
这些方法有何不同?
math.fabs () 将其参数转换为浮点(如果它不能的话,它会扔出一个例外) 。 然后它会使用绝对值, 然后将结果返回为浮点 。
除了浮点之外,abs () 还使用整数和复杂数字。 其返回类型取决于其参数的类型 。
In [7]: type(abs(-2))
Out[7]: int
In [8]: type(abs(-2.0))
Out[8]: float
In [9]: type(abs(3+4j))
Out[9]: float
In [10]: type(math.fabs(-2))
Out[10]: float
In [11]: type(math.fabs(-2.0))
Out[11]: float
In [12]: type(math.fabs(3+4j))
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/home/npe/<ipython-input-12-8368761369da> in <module>()
----> 1 type(math.fabs(3+4j))
TypeError: can t convert complex to float
编辑: 正如@aix 所建议的, 比较速度差异的更好( 更公平的) 方式 :
In [1]: %timeit abs(5)
10000000 loops, best of 3: 86.5 ns per loop
In [2]: from math import fabs
In [3]: %timeit fabs(5)
10000000 loops, best of 3: 115 ns per loop
In [4]: %timeit abs(-5)
10000000 loops, best of 3: 88.3 ns per loop
In [5]: %timeit fabs(-5)
10000000 loops, best of 3: 114 ns per loop
In [6]: %timeit abs(5.0)
10000000 loops, best of 3: 92.5 ns per loop
In [7]: %timeit fabs(5.0)
10000000 loops, best of 3: 93.2 ns per loop
In [8]: %timeit abs(-5.0)
10000000 loops, best of 3: 91.8 ns per loop
In [9]: %timeit fabs(-5.0)
10000000 loops, best of 3: 91 ns per loop
似乎 abs ()
仅对整数 fabs ()
具有略微速度优势。 对于浮标, abs ()
和 fabs ()
显示类似速度 。
除了@aix所说的话之外,
In [1]: %timeit abs(-5)
10000000 loops, best of 3: 102 ns per loop
In [2]: import math
In [3]: %timeit math.fabs(-5)
10000000 loops, best of 3: 194 ns per loop
因此, abs ()
比 math.fabs ()
要快。
math.fabs ()
总是返回浮点, 而 abs ()
可以返回整数 。
abs()
:
Returns the absolute value as per the argument i.e. if argument is int then it returns int, if argument is float it returns float.
Also it works on complex variable also i.e. abs(a+bj)
also works and returns absolute value i.e.math.sqrt(((a)**2)+((b)**2)
math.fabs()
:
It only works on the integer or float values. Always returns the absolute float value no matter what is the argument type(except for the complex numbers).
abs ()
和 fabs ()
的区别是:
abs()方法也使用复杂数据
示例:
x = np.array([-12,-19,4])
abs_x = np.abs(x)
print(abs_x) #output: [12 19 4]
< 加固 > fabs () : 强 > 计算绝对值元素。 但此方法返回浮点时的数值 。
abs()
和fabs()
的主要区别是:
fabs ()
always return floor andfabs ()
无法处理复杂值。
示例:
x = np.array([-12,-19,4])
abs_x = np.fabs(x)
print(abs_x) #output: [12.0 19.0 4.0]
Is there a way to force Django models to pass a field to a MySQL function every time the model data is read or loaded? To clarify what I mean in SQL, I want the Django model to produce something like ...
I am looking for an enterprise tasks scheduler for python, like quartz is for Java. Requirements: Persistent: if the process restarts or the machine restarts, then all the jobs must stay there and ...
Given the following list that contains some duplicate and some unique dictionaries, what is the best method to remove unique dictionaries first, then reduce the duplicate dictionaries to single ...
Simple enough question: I m using python random module to generate random integers. I want to know what is the suggested value to use with the random.seed() function? Currently I am letting this ...
I m using PyDev under Eclipse to write some Jython code. I ve got numerous instances where I need to do something like this: import com.work.project.component.client.Interface.ISubInterface as ...
Python s paster serve app.ini is taking longer than I would like to be ready for the first request. I know how to profile requests with middleware, but how do I profile the initialization time? I ...
Our business currently has an online store and recently we ve been offering free specials to our customers. Right now, we simply display the special and give the buyer a notice stating we will add the ...
I m trying to convert a Python dictionary into a Python list, in order to perform some calculations. #My dictionary dict = {} dict[ Capital ]="London" dict[ Food ]="Fish&Chips" dict[ 2012 ]="...