English 中文(简体)
Python - 腹部对腹部
原标题:Python - abs vs fabs
  • 时间:2012-05-27 07:16:39
  •  标签:
  • python

我注意到Python公司有两种相似的搜索方法 来寻找数字的绝对值:

第一届

abs(-5)

第二届

import math
math.fabs(-5)

这些方法有何不同?

最佳回答
问题回答

编辑: 正如@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 () : 计算绝对值元素。 但元素被打( int), 它会返回类型( int), 如果参数被打入浮点, 它会返回类型( 浮点) ( float) 。 无论您通过哪种方式, 它都会返回相同的数据类型 。

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 and fabs () 无法处理复杂值。

示例:

x = np.array([-12,-19,4])
abs_x = np.fabs(x) 
print(abs_x)  #output: [12.0 19.0  4.0]




相关问题
Can Django models use MySQL functions?

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 ...

An enterprise scheduler for python (like quartz)

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 ...

How to remove unique, then duplicate dictionaries in a list?

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 ...

What is suggested seed value to use with random.seed()?

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 ...

How can I make the PyDev editor selectively ignore errors?

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 ...

How do I profile `paster serve` s startup time?

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 ...

Pragmatically adding give-aways/freebies to an online store

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 ...

Converting Dictionary to List? [duplicate]

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 ]="...

热门标签