我不理解Python Numpy中的数组作为索引。 例如,我在Numpy中有一个2d数组A
[[1,2,3]
[4,5,6]
[7,8,9]
[10,11,12]]
A [[1,3],[0,1]]是什么意思?
答案 0 :(得分:1)
亲自测试一下!
A = np.arange(12).reshape(4,3)
print(A)
>>> array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11]])
通过按照您的方式(docs to slicing)切割数组,您将获得第一行,第零列元素和第三行第一列元素。
A[[1,3], [0,1]]
>>> array([ 3, 10])
我强烈建议您稍微玩一下,看一下文档和示例。
答案 1 :(得分:1)
您正在创建一个新阵列:
import numpy as np
A = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
[10, 11, 12]]
A = np.array(A)
print(A[[1, 3], [0, 1]])
# [ 4 11]
请参阅tutorial中的索引,切片和迭代。
多维数组每个轴可以有一个索引。这些索引在以逗号分隔的元组中给出
引用文档:
def f(x,y):
return 10*x+y
b = np.fromfunction(f, (5, 4), dtype=int)
print(b[2, 3])
# -> 23
您还可以使用NumPy数组作为数组的索引。请参阅文档中的Index arrays。
NumPy数组可以使用其他数组(或任何其他可以转换为数组的类序列对象,如列表,但元组除外;请参阅本文档的末尾,了解其原因)。索引数组的使用范围从简单,直接的案例到复杂的,难以理解的案例。对于索引数组的所有情况,返回的是原始数据的副本,而不是切片获取的视图。