summaryrefslogtreecommitdiff
path: root/numpy/core
diff options
context:
space:
mode:
authorhannaro <hroehling@gmx.net>2015-02-19 14:47:52 +0100
committerHanna <hanna@wlan241-190.extern.hu-berlin.de>2015-02-25 14:44:35 +0100
commit1b6f46ae7ca3361c029c480a76c737268bc8713b (patch)
tree4a88ce2104d7990cbc7b4d2e4bd9d6abdcfc1a33 /numpy/core
parentd770034969e35907e7497d5fe9053df4bdac2fd2 (diff)
downloadnumpy-1b6f46ae7ca3361c029c480a76c737268bc8713b.tar.gz
BUG: Fixes #5524 and adds test
argpartition does not fail anymore on non-ndarray array-likes. Fix as implemented by @maniteja123.
Diffstat (limited to 'numpy/core')
-rw-r--r--numpy/core/fromnumeric.py10
-rw-r--r--numpy/core/tests/test_multiarray.py6
2 files changed, 15 insertions, 1 deletions
diff --git a/numpy/core/fromnumeric.py b/numpy/core/fromnumeric.py
index aef09411a..c518309a0 100644
--- a/numpy/core/fromnumeric.py
+++ b/numpy/core/fromnumeric.py
@@ -691,8 +691,16 @@ def argpartition(a, kth, axis=-1, kind='introselect', order=None):
>>> x[np.argpartition(x, (1, 3))]
array([1, 2, 3, 4])
+ >>> x = [3, 4, 2, 1]
+ >>> np.array(x)[np.argpartition(x, 3)]
+ array([2, 1, 3, 4])
+
"""
- return a.argpartition(kth, axis, kind=kind, order=order)
+ try:
+ argpartition = a.argpartition
+ except AttributeError:
+ return _wrapit(a, 'argpartition',kth, axis, kind, order)
+ return argpartition(kth, axis, kind=kind, order=order)
def sort(a, axis=-1, kind='quicksort', order=None):
diff --git a/numpy/core/tests/test_multiarray.py b/numpy/core/tests/test_multiarray.py
index b0d677052..164c90cee 100644
--- a/numpy/core/tests/test_multiarray.py
+++ b/numpy/core/tests/test_multiarray.py
@@ -1748,6 +1748,12 @@ class TestMethods(TestCase):
assert_array_equal(np.partition(d, kth)[kth], tgt,
err_msg="data: %r\n kth: %r" % (d, kth))
+ def test_argpartition_gh5524(self):
+ # A test for functionality of argpartition on lists.
+ d = [6,7,3,2,9,0]
+ p = np.argpartition(d,1)
+ self.assert_partitioned(np.array(d)[p],[1])
+
def test_flatten(self):
x0 = np.array([[1, 2, 3], [4, 5, 6]], np.int32)
x1 = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]], np.int32)