np.indices函数使用方法
官方文档中说明,np.indices函数的作用是返回一个代表网格中所有序号的矩阵。具体而言,
import numpy as np
# 定义矩阵A和B
A = np.random.randint(0,100,(2,3))
B = np.random.randint(0,100,(2,3,4))
# A.shape为(2,3)是一个二维矩阵,因此idx_A.shape为(2,2,3),因为A中每个元素需要2个序号指示位置
#同理B.shape为(2,3,4)是一个三维矩阵,因此idx_B.shape为(3,2,3,4),因为B中每个元素要3个序号指示位置
idx_A = np.indices(A.shape)
idx_B = np.indices(B.shape)
idx_A.shape
Out[8]: (2, 2, 3)
idx_B.shape
Out[9]: (3, 2, 3, 4)
# A的值
A
Out[10]:
array([[51, 80, 71],
[ 4, 49, 97]])
# idx_A[0,0,0]表示A[0,0]位置的第一个序号也就是0,idx_A[1,0,0]表示A[0,0]位置的第二个序号(还是0)
# 用idx_A[0,0,0]和idx_A[1,0,0]可以访问A的第[0,0]个位置也就是51
# 其他同理
A[idx_A[0,0,0],idx_A[1,0,0]]
Out[11]: 51
A[idx_A[0,0,1],idx_A[1,0,1]]
Out[12]: 80
A[idx_A[0,1,0],idx_A[1,1,0]]
Out[13]: 4