Numpy:两个置换的乘积

4
我有两个用Numpy数组表示的排列:
A:
     0  1  2  3
A = [1, 3, 2, 0]

and B:

     0  1  2  3
B = [0, 2, 1, 3]

如何得到C = A*B,其中
0->1 * 1->2 = 2
1->3 * 3->3 = 3
2->2 * 2->1 = 1
3->0 * 0->0 = 0

C = (2, 3, 1, 0)

高效地使用Numpy?
1个回答

4
简单来说,b[a] 就可以完成这个技巧:
>>> import numpy as np
>>> a = np.array([1, 3, 2, 0])
>>> b = np.array([0, 2, 1, 3])
>>> c = b[a]
>>> print c
[2 3 1 0]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接