【问题标题】:Sort numpy.array rows by indices按索引对 numpy.array 行进行排序
【发布时间】:2014-10-31 05:30:44
【问题描述】:

我有 2D numpy.array 和一组索引:

a = array([[0, 0], [0, 1], [1, 0], [1, 1]])
ix = (2, 0, 3, 1)

如何按索引对数组的行进行排序?预期结果:

array([[1, 0], [0, 0], [1, 1], [0, 1]])

我尝试使用numpy.take,但它只适用于一维数组。

【问题讨论】:

    标签: python arrays python-2.7 numpy


    【解决方案1】:

    您实际上可以为此使用ndarray.take()。诀窍是提供第二个参数 (axis):

    >>> a.take(ix, 0)
    array([[1, 0],
           [0, 0],
           [1, 1],
           [0, 1]])
    

    (如果没有axis,则在获取元素之前将数组展平。)

    或者:

    >>> a[ix, ...]
    array([[1, 0],
           [0, 0],
           [1, 1],
           [0, 1]])
    

    【讨论】:

    • 谢谢!我不知道numpy.take 的第二个参数。
    猜你喜欢
    • 1970-01-01
    • 2011-12-17
    • 1970-01-01
    • 2018-05-12
    • 2018-04-29
    • 2013-10-09
    • 2015-08-27
    • 2016-10-22
    • 1970-01-01
    相关资源
    最近更新 更多