如何在numpy中解释这个数组索引?

时间:2015-02-13 18:38:10

标签: python numpy

我想在下面的代码片段中解释数组索引。 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]

1 个答案:

答案 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}}行。