Python 如何获得稳定版本的numpy for PyPy?

Python 如何获得稳定版本的numpy for PyPy?,python,numpy,pypy,Python,Numpy,Pypy,我已经从链接下载了PyPy便携版,并使用命令pip install git安装了numpy for PyPy+https://bitbucket.org/pypy/numpy.git 安装成功,但我无法使用numpy.min这样的功能 >>>> numpy.min([1,2,3]) Traceback (most recent call last): ... TypeError: expected integer, got NoneType object 因此,

我已经从链接下载了PyPy便携版,并使用命令
pip install git安装了numpy for PyPy+https://bitbucket.org/pypy/numpy.git

安装成功,但我无法使用
numpy.min
这样的功能

>>>> numpy.min([1,2,3])    
Traceback (most recent call last):
...
TypeError: expected integer, got NoneType object
因此,我运行了
numpy.test()
,结果是

FAILED (KNOWNFAIL=5, SKIP=24, errors=886, failures=152)
<nose.result.TextTestResult run=3367 errors=886 failures=152>
失败(KNOWNFAIL=5,SKIP=24,errors=886,failures=152)
这似乎是我安装的numpy的不稳定版本。如何获得稳定版本的numpy for PyPy

我还尝试了
pip-install-numpy
(而不是
pip-install-git)+https://bitbucket.org/pypy/numpy.git

然而,我遇到了链接中讨论的另一个问题


答案是使用
apt get
安装numpy,但这个答案只适用于CPython。PyPy有好的解决方案吗?

我刚刚下载了PyPy2.4及其numpy(通过git安装)。看起来
ufunc
功能有缺陷或不完整

x = numpy.arange(10)
x.sum()  # 45
x.min()  # 0
numpy.min(x)  # TypeError: expected integer, got NoneType object
numpy.sum(x)  # same error
但是如果我给它一个
out
属性,这些
ufunc
版本就可以工作(sortof)

但它不会在
out
参数中返回值

y = 0
numpy.sum(x, out=y)  # returns 45, but does not change y
常规
numpy
会反对
y
不是数组(或维度错误)


np.min(x)
np.core.umath.minimum.reduce(x,None,None,None)
相同,其中
reduce
参数是
(变量、轴、数据类型、输出)
<代码>np.core.umath.minimum.reduce(x)工作正常

np.core.umath.add.acculate
out
参数相关,因此问题似乎与
reduce
无关

如果使用git clone安装,您将在计算机上获得完整的存储库,您可以对其进行浏览。这些信息也可以在线获取。我仍在试图弄清楚ufunc reduce是在哪里定义的,它是否功能齐全。该模块仍处于开发阶段


是一个numpy状态表。它引用了一个
pypypy/module/mpy
目录。我还没有弄清楚这与存储库的关系(在下载页面上)。我可以在
minompy
树中找到
ufunc.reduce
代码,但在
numpy.git
树中找不到


core/\u methods.py
中,
sum
被定义为调用
add.reduce
<代码>最小值和
最大值
类似。关键字参数变为位置参数

def _sum(a, axis=None, dtype=None, out=None, keepdims=False):
    return um.add.reduce(a, axis, dtype, out, keepdims)
但看起来这些参数的顺序是错误的
out
是第四个,但是当我尝试直接添加.减少时,我必须做第六个

>>>> x
array([[ 0.,  1.],
       [ 2.,  3.],
       [ 4.,  5.]])
>>>> y=np.zeros((2,))
>>>> np.add.reduce(x, 0, float, False, False, y)
array([ 6.,  9.])
# reduce(a, axis, dtype, ?, keepdims, out)
我顺便看到在
micrompy
树中有一个
commit
处理
reduce
的错误参数顺序。这可能正在修复此错误

在常规
numpy
中,
sum
调用为:

um.add.reduce(a, axis=axis, dtype=dtype, out=out, keepdims=keepdims)
这很好用。显然有人试图通过最小化关键字参数来挤出一点性能

module/micrompy/ufuncs.py
reduce
定义为:

reduce(self, space, w_obj, w_axis, keepdims=False, out=None, dtype=None,
    cumulative=False)

你确定有一个
numpy
版本可以使用
pypy
吗?我能找到的最后一篇关于它的
pypy
博客文章是在4月份发布的,它似乎仍在进行中。
reduce(self, space, w_obj, w_axis, keepdims=False, out=None, dtype=None,
    cumulative=False)