我有 2Dnumpy.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
,但它只适用于一维数组,正如我所期望的那样。
你实际上可以使用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]])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)