这是我的第一个堆栈溢出问题所以请原谅我对论坛的任何无知。
我在win 7机器上使用来自Enthought Canopy 1.3.0.1715的python 2.7.6 64位和pandas 0.13.1-1。我有numpy 1.8.0-1和numexpr 2.2.2-2。
我在从hdf加载的10,000个numpy.float64的pandas系列中运行以下内容时出现了不一致的错误:
import python
s = pandas.read_hdf(r'C:\test\test.h5', 'test')
s/2.
这给了我不一致的行为,它有时会起作用,有时会抛出:
OMP: Error #134: Cannot set thread affinity mask.
OMP: System error #87: The parameter is incorrect.
我在其他计算机上复制了此错误,并且测试用例来自单元测试失败(带有上述错误),该错误在多台计算机和服务器上复制。这已经从熊猫0.12升级到熊猫0.13。
以下一致运行,没有错误:
import python
s = pandas.read_hdf(r'C:\test\test.h5', 'test')
s.apply(lambda x: x/2.)
和
import python
s = pandas.read_hdf(r'C:\test\test.h5', 'test')
pandas.computation.expressions.set_use_numexpr(False)
s/2.
感谢您的帮助。
答案 0 :(得分:1)
这是与此issue中描述的非常类似的问题,以及链接的issue
似乎只有canopy
遇到了这些问题。我认为它与冠层numpy MKL构建有关,但这是猜测,因为我无法重现这一点。所以这里有一些解决方法:
numexpr
升级到2.4(当前版本),或降级为2.1
numpy 1.8.1
numexpr
您还可以通过numexpr
停用pandas.computation.expressions.set_use_numexpr(False)
支持。请注意,numexpr
是必需的,以便通过PyTables
读取/使用HDF5文件。但是,禁用numexpr
的表达式应该只是禁用它来进行计算' (而不是HDF访问)。