如何使用给定的索引位置重新排列二维NumPy数组的列
在这篇文章中,我们将学习如何使用给定的索引位置重新排列一个给定的numpy数组的列。这里的列是用给定的索引重新排列的。为此,我们可以简单地将列值存储在列表中,并根据给定的索引列表排列这些列,但这种方法成本很高。因此,通过使用numpy数组的概念,可以在最短的时间内轻松完成。
示例 :
Arr = [[1,2,3,4,5], [1,2,3,4,5], [1,2,3,4,5]] and i = [2, 4, 0, 3, 1]
那么输出是[[3,5,1,4,2],[3,5,1,4,2],[3,5,1,4,2],[3,5,1,4,2],[3,5,1,4,2]] 。
这里,i[0]=2,即;第三列,所以输出=[[3],[3],[3],][3],[3]]
。
i[1]=4,即;第5列,所以输出=[[3,5],[3,5],][3,5],[3,5]]
。
i[2] = 0 即;第1列,所以输出 =[[3,5,1], [3,5,1], [3,5,1],][3,5,1]]
。
i[3] = 3 即;第四列,所以输出 =[[3,5,1,4],[3,5,1,4],[3,5,1,4],][3,5,1,4]]
。
i[4] = 1 即;第二列,所以输出 = [[3,5,1,4,2], [3,5,1,4,2], [3,5,1,4,2],] [3,5,1,4,2]]
。
下面是一个例子的实现。
# importing package
import numpy
# create a numpy array
arr = numpy.array([[1,2,3,4,5],
[1,2,3,4,5],
[1,2,3,4,5],
[1,2,3,4,5],
[1,2,3,4,5]
])
# view array
print(arr)
# declare index list
i = [2,4,0,3,1]
# create output
output = arr[:,i]
# view output
print(output)
输出 :
[[1 2 3 4 5]
[1 2 3 4 5]
[1 2 3 4 5]
[1 2 3 4 5]
[1 2 3 4 5]]
[[3 5 1 4 2]
[3 5 1 4 2]
[3 5 1 4 2]
[3 5 1 4 2]
[3 5 1 4 2]]