【问题标题】:How is this sorting by indexes? How exactly this code works?这是如何按索引排序的?这段代码究竟是如何工作的?
【发布时间】:2018-06-16 12:49:17
【问题描述】:
arr = np.array(range(12))
arr = arr.reshape((4,3))
keys = np.array([1,0,1,2])
arr[np.arange(4), np.array([1,0,1,2])]

这打印:

array([ 1,  3,  7, 11]).

我知道这是根据索引 (1,1) (0,0) (1,1) (2,2) 进行排序

但是怎么做呢?我不是指任何变量。我正在调用函数 np.array,现在我指的是 arr 的索引。为什么不创建新数组?

【问题讨论】:

    标签: python arrays python-3.x numpy jupyter-notebook


    【解决方案1】:

    这不是排序。它正在从数组中选择元素。

    这两个列表中的行和列索引是成对的,

     [0,1,2,3], [1,0,1,2]
    

    它返回 4 个元素

     arr[(0,1)], arr[(1,0)], arr[(2,1)], arr[(3,2)]
    

    【讨论】:

    • 感谢回复
    猜你喜欢
    • 2013-12-05
    • 2021-01-27
    • 2016-06-30
    • 2018-03-03
    • 1970-01-01
    • 1970-01-01
    • 2021-04-11
    • 2021-06-18
    • 2011-05-16
    相关资源
    最近更新 更多