整数数组索引python

时间:2017-08-20 19:36:01

标签: python arrays python-3.x numpy indexing

import numpy as np

a = np.array([[1,2], [3, 4], [5, 6]])

print(a[[0, 1, 2], [0, 1, 0]])  # Prints "[1 4 5]"

print(a[[0, 0], [1, 1]])  # Prints "[2 2]"

我不明白为什么会产生[1 4 5][2 2]

2 个答案:

答案 0 :(得分:2)

因为您正在使用索引

切割数组

a[[0, 1, 2], [0, 1, 0]]相当于

a[0, 0]  # 1
a[1, 1]  # 4
a[2, 0]  # 5

a[[0, 0], [1, 1]]相当于两次a[0, 1]

有关Numpy索引的更多信息here

答案 1 :(得分:0)

将其视为2d阵列访问。初始化时,您将获得以下形式的二维数组:

[ 1  2 ]
[ 3  4 ]
[ 5  6 ]

给定2d数组时的Numpy索引的工作方式如下:输入行索引列表,然后输入列索引列表。从语义上讲,您的第一个索引检索语句是“从第0行检索元素0,从第1行检索元素1,并从第2行检索元素0”,它对应于[1 4 5]。然后你可以弄清楚为什么你得到[2 2]第二个陈述。

您可以在此处详细了解此高级索引:https://docs.scipy.org/doc/numpy/reference/arrays.indexing.html#integer-array-indexing