我有一个由基本数学函数(abs,cosh,sinh,exp,…)组合定义的函数。
我不知道是否有差别(速度)来使用,例如, numpy.abs()
而不是abs()
?
计时结果如下:
lebigot@weinberg ~ % python -m timeit 'abs(3.15)'
10000000 loops, best of 3: 0.146 usec per loop
lebigot@weinberg ~ % python -m timeit -s 'from numpy import abs as nabs' 'nabs(3.15)'
100000 loops, best of 3: 3.92 usec per loop
numpy.abs()
比abs()
它还处理Numpy数组要慢:它包含提供这种灵活性的其他代码。
但是,Numpy在数组 上的 速度很快:
lebigot@weinberg ~ % python -m timeit -s 'a = [3.15]*1000' '[abs(x) for x in a]'
10000 loops, best of 3: 186 usec per loop
lebigot@weinberg ~ % python -m timeit -s 'import numpy; a = numpy.empty(1000); a.fill(3.15)' 'numpy.abs(a)'
100000 loops, best of 3: 6.47 usec per loop
(PS:'[abs(x) for x in a]'
在python 2.7中比慢于慢map(abs, a)
,后者快约30%,但仍然比NumPy慢得多。)
因此,numpy.abs()
对于1000个元素而言,花费的时间不会比1个单个float花费更多的时间!
主要内容:三角函数,舍入函数NumPy 中包含了大量的数学函数,它们用于执行各种数学运算,其中包括三角函数、舍入函数等等。下面对它们做详细讲解。 三角函数 NumPy 中提供了用于弧度计算的的 sin()(正弦)、cos()(余弦)和 tan()(正切)三角函数。 示例如下: 输出结果如下: 除了上述三角函数以外,NumPy 还提供了 arcsin,arcos 和 arctan 反三角函数。 若要想验证反三角函数的结果,可以
比较两个NumPy数组是否相等的最简单方法是什么(其中相等定义为:A=B iff,用于所有索引i:
本文向大家介绍python科学计算之numpy——ufunc函数用法,包括了python科学计算之numpy——ufunc函数用法的使用技巧和注意事项,需要的朋友参考一下 写在前面 ufunc是universal function的缩写,意思是这些函数能够作用于narray对象的每一个元素上,而不是针对narray对象操作,numpy提供了大量的ufunc的函数。这些函数在对narray进行运算的
问题内容: 通常,我从numpy的einsum函数获得了良好的性能(我喜欢它的语法)。@Ophion对这个问题的回答表明-在测试的情况下- einsum始终优于“内置”功能(有时会稍微好一些,有时会很多)。但是我刚遇到einsum慢得多的情况。考虑以下等效功能: 我期望跑得最快,但这不是我遇到的。在具有超线程,numpy版本1.9.0.dev-7ae0206和带有OpenBLAS的多线程的四核CP
问题内容: 我在创建numpy数组的numpy数组时遇到问题。我将在一个循环中创建它: 所需结果: 实际结果: 可能吗?我不知道数组的最终尺寸,因此无法使用固定尺寸对其进行初始化。 问题答案: 永远不要在循环中追加数组:与基本的Python相比,这是NumPy非常不擅长的一项操作。这是因为您要对每个数据进行完整复制,这将花费您二次时间。 相反,只需将您的数组附加到Python列表中,并在最后进行转
问题内容: 我知道有一种用于Python列表的方法来返回某些内容的第一个索引: NumPy数组有类似的东西吗? 问题答案: 是的,在给定数组和值的情况下,这是搜索的答案: 结果是具有所有行索引,然后是所有列索引的元组。 例如,如果一个数组是二维的,并且它在两个位置包含你的商品,则 将等于你的项目,因此