我有一个numpy数组,并希望获得特定元素的值。例如,我可能想要访问[1,1]
import numpy as np
A = np.arange(9).reshape(3,3)
print A[1,1]
# 4
现在,说我有一个数组中的坐标:
i = np.array([1,1])
如何使用A
坐标数组索引i
。以下不起作用:
print A[i]
# [[3 4 5]
# [3 4 5]]
答案 0 :(得分:4)
在Python中,
x[(exp1, exp2, ..., expN)]
相当于x[exp1, exp2, ..., expN]
;后者只是前者的语法糖。
因此,要获得与A[1,1]
相同的结果,您必须使用元组进行索引。
如果使用ndarray
作为索引对象,则会触发高级索引:
答案 1 :(得分:0)
你最好的选择是A[tuple(i)]
。 tuple(i)
调用仅将i
视为序列,并将序列项放入元组中。请注意,如果您的数组有多个维度,则不会生成嵌套元组。但在这种情况下并不重要。