这是如何按索引排序的?这段代码究竟是如何工作的

时间:2018-01-07 07:09:35

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

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的索引。为什么不创建新阵列?

1 个答案:

答案 0 :(得分:0)

它没有排序。它是从数组中选择元素。

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

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

它返回4个元素

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