Author: mattip <matti.pi...@gmail.com> Branch: Changeset: r82368:85f5eef31a2a Date: 2016-02-21 15:53 +0100 http://bitbucket.org/pypy/pypy/changeset/85f5eef31a2a/
Log: test, fix boolean array indexing, extending d77888929462 diff --git a/pypy/module/micronumpy/compile.py b/pypy/module/micronumpy/compile.py --- a/pypy/module/micronumpy/compile.py +++ b/pypy/module/micronumpy/compile.py @@ -196,6 +196,10 @@ def newfloat(self, f): return self.float(f) + def newslice(self, start, stop, step): + return SliceObject(self.int_w(start), self.int_w(stop), + self.int_w(step)) + def le(self, w_obj1, w_obj2): assert isinstance(w_obj1, boxes.W_GenericBox) assert isinstance(w_obj2, boxes.W_GenericBox) diff --git a/pypy/module/micronumpy/strides.py b/pypy/module/micronumpy/strides.py --- a/pypy/module/micronumpy/strides.py +++ b/pypy/module/micronumpy/strides.py @@ -94,11 +94,13 @@ dim = i break if dim >= 0: - # filter by axis r - filtr = chunks.pop(dim) + # filter by axis dim + filtr = chunks[dim] assert isinstance(filtr, BooleanChunk) w_arr = w_arr.getitem_filter(space, filtr.w_idx, axis=dim) arr = w_arr.implementation + chunks[dim] = SliceChunk(space.newslice(space.wrap(0), + space.wrap(-1), space.w_None)) r = calculate_slice_strides(space, arr.shape, arr.start, arr.get_strides(), arr.get_backstrides(), chunks) else: diff --git a/pypy/module/micronumpy/test/test_ndarray.py b/pypy/module/micronumpy/test/test_ndarray.py --- a/pypy/module/micronumpy/test/test_ndarray.py +++ b/pypy/module/micronumpy/test/test_ndarray.py @@ -2550,6 +2550,8 @@ assert b.base is None b = a[:, np.array([True, False, True])] assert b.base is not None + b = a[np.array([True, False]), 0] + assert (b ==[0]).all() def test_scalar_indexing(self): import numpy as np _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit