[pypy-commit] pypy default: fix array(scalar)[newaxis]
bdkearns
noreply at buildbot.pypy.org
Sat Dec 14 18:54:18 CET 2013
Author: Brian Kearns <bdkearns at gmail.com>
Branch:
Changeset: r68439:a8a77877670d
Date: 2013-12-14 12:42 -0500
http://bitbucket.org/pypy/pypy/changeset/a8a77877670d/
Log: fix array(scalar)[newaxis]
diff --git a/pypy/module/micronumpy/arrayimpl/scalar.py b/pypy/module/micronumpy/arrayimpl/scalar.py
--- a/pypy/module/micronumpy/arrayimpl/scalar.py
+++ b/pypy/module/micronumpy/arrayimpl/scalar.py
@@ -132,6 +132,12 @@
if space.isinstance_w(w_idx, space.w_tuple):
if space.len_w(w_idx) == 0:
return self.get_scalar_value()
+ if space.is_none(w_idx):
+ new_shape = [1]
+ arr = W_NDimArray.from_shape(space, new_shape, self.dtype)
+ arr_iter = arr.create_iter(new_shape)
+ arr_iter.setitem(self.value)
+ return arr
raise OperationError(space.w_IndexError,
space.wrap("0-d arrays can't be indexed"))
diff --git a/pypy/module/micronumpy/test/test_numarray.py b/pypy/module/micronumpy/test/test_numarray.py
--- a/pypy/module/micronumpy/test/test_numarray.py
+++ b/pypy/module/micronumpy/test/test_numarray.py
@@ -640,6 +640,9 @@
for y in range(2):
expected[x, y] = math.cos(a[x]) * math.cos(b[y])
assert ((cos(a)[:,newaxis] * cos(b).T) == expected).all()
+ a = array(1)[newaxis]
+ assert a == array([1])
+ assert a.shape == (1,)
def test_newaxis_slice(self):
from numpypy import array, newaxis
More information about the pypy-commit
mailing list