我想在下面的代码片段中解释数组索引。 State[t,Con]
是什么意思,Con
本身就是一个数组?
for t in range(T): # 0 .. T-1
State[t+1] = Bool[:, sum(Pow * State[t,Con],1)].diagonal()
Con
如下(其中N> K):
Con = apply_along_axis(random.permutation, 1, tile(range(N), (N,1) ))[:, 0:K]
答案 0 :(得分:1)
Con
是一个(N,K)
整数数组。
State
大概是(T,N)
数组。
State[t,Con]
将是从(N,K)
t
行中选择的State
数组值。由于Con
重复,因此State
行的某些值将重复出现。
`Bool[:, sum(Pow * State[t,Con],1)].diagonal()`
然后,它通过元素乘法与Pow
(也是一个(N,K)数组或兼容的东西)进行元素转换。然后对最后一个轴(列)求和,给出一个N,)
数组(N个元素向量)。然后从数组Bool
(一个(N,N)
数组?)中选择那些列。最后得到主对角线 - 再次是N值。
最后一步是将这些值分配到t+1
的{{1}}行。