在本文中,我们将给您介绍关于numexpr:你以为numpy已经够快了,其实它还可以更快的详细内容,并且为您解答numpy速度快的原因的相关问题,此外,我们还将为您提供关于"importnumpyas
在本文中,我们将给您介绍关于numexpr:你以为 numpy 已经够快了,其实它还可以更快的详细内容,并且为您解答numpy速度快的原因的相关问题,此外,我们还将为您提供关于"import numpy as np" ImportError: No module named numpy、3.7Python 数据处理篇之 Numpy 系列 (七)---Numpy 的统计函数、Anaconda Numpy 错误“Importing the Numpy C Extension Failed”是否有另一种解决方案、AttributeError:模块'numexpr'没有属性'__version__'的知识。
本文目录一览:- numexpr:你以为 numpy 已经够快了,其实它还可以更快(numpy速度快的原因)
- "import numpy as np" ImportError: No module named numpy
- 3.7Python 数据处理篇之 Numpy 系列 (七)---Numpy 的统计函数
- Anaconda Numpy 错误“Importing the Numpy C Extension Failed”是否有另一种解决方案
- AttributeError:模块'numexpr'没有属性'__version__'
numexpr:你以为 numpy 已经够快了,其实它还可以更快(numpy速度快的原因)
开篇
python语言被广泛用于数据分析和机器学习。但是,由于python的底层特性,python的运行速率低一直被广泛诟病。其中,numpy和pandas的广泛使用已经将数据处理和机器学习的速率提升了几个档次。
但是,随着数据的越来越多,很多人已经不再满足numpy和pandas的速度,从而退出了一批加速优化拓展包。这篇文章主要介绍一个轻量、但是功能强大的python扩展包 ”NumExpr",看看它是如何高效解析数学公式的。
NumExpr
NumExpr的使用及其简单,只需要将原来的numpy语句使用双引号框起来,并使用numexpr中的evaluate方法调用即可。
第一步:需要引入 numexpr 和 numpy 扩展包;
import numexpr as ne
import numpy as np
第二步:创建两个numpy的array - a 和 b;
a和b两个所包含的数据个数为100万个。
当我们需要执行简单的加减乘除的时候,numexpr的效率已经得到了很好地体现。如上图所示,通过执行 2 a + 3 b,如果直接操作,需要3.39 毫秒。但是,如果我们是用ne.evaluate加速,可以将时间缩短至1.55 毫秒。
numexpr在更加复杂的数学表达式运算中,表现到底如何呢?
当我们使用如上所示的数学表达式,正常执行需要28.3 ms。而通过numexpr的加速,只需要3.03 ms。
注意,numexpr是可以识别 sin 函数的,所以我们不需要在evaluate里面写np.sin,可以直接写 sin。
总结:处理数据量越大,数学计算越复杂,则numexpr的加速效果越明显。
numpy 和 numexpr 比较
我们可以看到,当np.array的元素个数超过10e8,加速效果更加显著。
numexpr也支持逻辑表达式和复数表达式的加速,有兴趣的读者朋友可以自行比较。
numexpr 多线程加速
numexpr还有一个重要的加速利器,多线程操作。通过 ne.set_num_threads(1) 可以设置线程的数量,更多的线程表示程序可以同时对数学表达式进行计算。
如上所示,如果我们设置单线程,程序运行需要13.4 ms。设置了双线程,速度则可以提升一倍。
numexpr对pandas的加速
numexpr的设计主要针对的是numpy。同样的,我们知道pandas也是基于numpy开发的。自然,numexpr同样可以被用来对pandas加速。
pandas中有一个eval方法就是运用了numexpr,对pandas代码进行优化加速。
当我们构建几个pandas的dataframe,然后对它们进行运算的时候,pd.eval 可以将程序从原先的47.4 ms 加速到17.6 ms。
总结
通过以上的实例,numexpr对于numpy和pandas的加速是很显著的,尤其当数据量比较大和计算比较复杂的情况下。同时,numexpr的使用非常简单。但是,我们需要注意的是,任何加速工具都会有局限性的,并不是所有的工作都可以使用numexpr进行加速。
看完别走还有惊喜!
我精心整理了计算机/Python/机器学习/深度学习相关的2TB视频课与书籍,价值1W元。关注微信公众号“计算机与AI”,点击下方菜单即可获取网盘链接。
"import numpy as np" ImportError: No module named numpy
问题:没有安装 numpy
解决方法:
下载文件,安装
numpy-1.8.2-win32-superpack-python2.7
安装运行 import numpy,出现
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
import numpy
File "C:\Python27\lib\site-packages\numpy\__init__.py", line 153, in <module>
from . import add_newdocs
File "C:\Python27\lib\site-packages\numpy\add_newdocs.py", line 13, in <module>
from numpy.lib import add_newdoc
File "C:\Python27\lib\site-packages\numpy\lib\__init__.py", line 8, in <module>
from .type_check import *
File "C:\Python27\lib\site-packages\numpy\lib\type_check.py", line 11, in <module>
import numpy.core.numeric as _nx
File "C:\Python27\lib\site-packages\numpy\core\__init__.py", line 6, in <module>
from . import multiarray
ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。
原因是:python 装的是 64 位的,numpy 装的是 32 位的
重新安装 numpy 为:numpy-1.8.0-win64-py2.7
3.7Python 数据处理篇之 Numpy 系列 (七)---Numpy 的统计函数
目录
[TOC]
前言
具体我们来学 Numpy 的统计函数
(一)函数一览表
调用方式:np.*
.sum(a) | 对数组 a 求和 |
---|---|
.mean(a) | 求数学期望 |
.average(a) | 求平均值 |
.std(a) | 求标准差 |
.var(a) | 求方差 |
.ptp(a) | 求极差 |
.median(a) | 求中值,即中位数 |
.min(a) | 求最大值 |
.max(a) | 求最小值 |
.argmin(a) | 求最小值的下标,都处里为一维的下标 |
.argmax(a) | 求最大值的下标,都处里为一维的下标 |
.unravel_index(index, shape) | g 根据 shape, 由一维的下标生成多维的下标 |
(二)统计函数 1
(1)说明
(2)输出
.sum(a)
.mean(a)
.average(a)
.std(a)
.var(a)
(三)统计函数 2
(1)说明
(2)输出
.max(a) .min(a)
.ptp(a)
.median(a)
.argmin(a)
.argmax(a)
.unravel_index(index,shape)
作者:Mark
日期:2019/02/11 周一
Anaconda Numpy 错误“Importing the Numpy C Extension Failed”是否有另一种解决方案
如何解决Anaconda Numpy 错误“Importing the Numpy C Extension Failed”是否有另一种解决方案?
希望有人能在这里提供帮助。我一直在绕圈子一段时间。我只是想设置一个 python 脚本,它将一些 json 数据从 REST API 加载到云数据库中。我在 Anaconda 上设置了一个虚拟环境(因为 GCP 库推荐这样做),安装了依赖项,现在我只是尝试导入库并向端点发送请求。 我使用 Conda(和 conda-forge)来设置环境并安装依赖项,所以希望一切都干净。我正在使用带有 Python 扩展的 VS 编辑器作为编辑器。 每当我尝试运行脚本时,我都会收到以下消息。我已经尝试了其他人在 Google/StackOverflow 上找到的所有解决方案,但没有一个有效。我通常使用 IDLE 或 Jupyter 进行脚本编写,没有任何问题,但我对 Anaconda、VS 或环境变量(似乎是相关的)没有太多经验。 在此先感谢您的帮助!
\Traceback (most recent call last):
File "C:\Conda\envs\gcp\lib\site-packages\numpy\core\__init__.py",line 22,in <module>
from . import multiarray
File "C:\Conda\envs\gcp\lib\site-packages\numpy\core\multiarray.py",line 12,in <module>
from . import overrides
File "C:\Conda\envs\gcp\lib\site-packages\numpy\core\overrides.py",line 7,in <module>
from numpy.core._multiarray_umath import (
ImportError: DLL load Failed while importing _multiarray_umath: The specified module Could not be found.
During handling of the above exception,another exception occurred:
Traceback (most recent call last):
File "c:\API\citi-bike.py",line 4,in <module>
import numpy as np
File "C:\Conda\envs\gcp\lib\site-packages\numpy\__init__.py",line 150,in <module>
from . import core
File "C:\Conda\envs\gcp\lib\site-packages\numpy\core\__init__.py",line 48,in <module>
raise ImportError(msg)
ImportError:
IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!
Importing the numpy C-extensions Failed. This error can happen for
many reasons,often due to issues with your setup or how NumPy was
installed.
We have compiled some common reasons and troubleshooting tips at:
https://numpy.org/devdocs/user/troubleshooting-importerror.html
Please note and check the following:
* The Python version is: python3.9 from "C:\Conda\envs\gcp\python.exe"
* The NumPy version is: "1.21.1"
and make sure that they are the versions you expect.
Please carefully study the documentation linked above for further help.
Original error was: DLL load Failed while importing _multiarray_umath: The specified module Could not be found.
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
AttributeError:模块'numexpr'没有属性'__version__'
如何解决AttributeError:模块''numexpr''没有属性''__version__''
尝试导入下面编写的一些模块:
import numpy as np
import os.path
import pandas as pd
import math
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
但是我得到AttributeError:模块''numexpr''没有属性'' version '',我不知道该如何解决。我已经尝试卸载并安装numpy。我在下面添加了完整的错误消息,如果过长,我深表歉意。
AttributeError Traceback (most recent call last)
<ipython-input-1-c0202e9c9cc8> in <module>()
1 import numpy as np
2 import os.path
----> 3 import pandas as pd
4 import math
5 import matplotlib.pyplot as plt
~\\Anaconda3\\lib\\site-packages\\pandas\\__init__.py in <module>()
40 import pandas.core.config_init
41
---> 42 from pandas.core.api import *
43 from pandas.core.sparse.api import *
44 from pandas.stats.api import *
~\\Anaconda3\\lib\\site-packages\\pandas\\core\\api.py in <module>()
8 from pandas.core.dtypes.missing import isnull,notnull
9 from pandas.core.categorical import Categorical
---> 10 from pandas.core.groupby import Grouper
11 from pandas.io.formats.format import set_eng_float_format
12 from pandas.core.index import (Index,CategoricalIndex,Int64Index,~\\Anaconda3\\lib\\site-packages\\pandas\\core\\groupby.py in <module>()
44 from pandas.core.base import (PandasObject,SelectionMixin,GroupByError,45 DataError,SpecificationError)
---> 46 from pandas.core.index import (Index,MultiIndex,47 CategoricalIndex,_ensure_index)
48 from pandas.core.categorical import Categorical
~\\Anaconda3\\lib\\site-packages\\pandas\\core\\index.py in <module>()
1 # Flake8: noqa
----> 2 from pandas.core.indexes.api import *
3 from pandas.core.indexes.multi import _sparsify
~\\Anaconda3\\lib\\site-packages\\pandas\\core\\indexes\\api.py in <module>()
----> 1 from pandas.core.indexes.base import (Index,_new_Index,# noqa
2 _ensure_index,_get_na_value,3 InvalidindexError)
4 from pandas.core.indexes.category import CategoricalIndex # noqa
5 from pandas.core.indexes.multi import MultiIndex # noqa
~\\Anaconda3\\lib\\site-packages\\pandas\\core\\indexes\\base.py in <module>()
50 import pandas.core.algorithms as algos
51 from pandas.io.formats.printing import pprint_thing
---> 52 from pandas.core.ops import _comp_method_OBJECT_ARRAY
53 from pandas.core.strings import StringAccessorMixin
54 from pandas.core.config import get_option
~\\Anaconda3\\lib\\site-packages\\pandas\\core\\ops.py in <module>()
17 from pandas import compat
18 from pandas.util._decorators import Appender
---> 19 import pandas.core.computation.expressions as expressions
20
21 from pandas.compat import bind_method
~\\Anaconda3\\lib\\site-packages\\pandas\\core\\computation\\__init__.py in <module>()
8 try:
9 import numexpr as ne
---> 10 ver = ne.__version__
11 _NUMEXPR_INSTALLED = ver >= LooseVersion(_MIN_NUMEXPR_VERSION)
12
AttributeError: module ''numexpr'' has no attribute ''__version__''
解决方法
前一段时间我遇到了相同的问题,并通过在Ananconda
中执行以下操作来解决了该问题:
pip uninstall -y numpy
pip uninstall -y setuptools
pip install setuptools
pip install numpy
如果您使用的是Anaconda3,请使用pip3
尝试相同的操作。
今天关于numexpr:你以为 numpy 已经够快了,其实它还可以更快和numpy速度快的原因的分享就到这里,希望大家有所收获,若想了解更多关于"import numpy as np" ImportError: No module named numpy、3.7Python 数据处理篇之 Numpy 系列 (七)---Numpy 的统计函数、Anaconda Numpy 错误“Importing the Numpy C Extension Failed”是否有另一种解决方案、AttributeError:模块'numexpr'没有属性'__version__'等相关知识,可以在本站进行查询。
本文标签: