据我所知,通过Sort N-D numpy array by another 1-D array使用花哨的索引,我可以做列如下c = a[:, :, b]
与b
定义为,我想通过列排序排序ND numpy的阵列与一个较小的ND阵列
>>> a = np.array([[[ 0, 1], [ 2, 3]],
[[ 4, 5], [ 6, 7]],
[[ 8, 9], [10, 11]]])
>>> b = np.array([1, 0])
>>> c = a[:, :, b]
>>> c
array([[[ 1, 0],
[ 3, 2]],
[[ 5, 4],
[ 7, 6]],
[[ 9, 8],
[11, 10]]])
现在我增加b
有2个输入b2
相当于我多么想每组2×2的排列在a
>>> b2 = np.array([[1, 0], [0, 1], [1, 0]])
>>> c2 = ?
>>> c2
array([[[ 1, 0],
[ 3, 2]],
[[ 4, 5],
[ 6, 7]],
[[ 9, 8],
[11, 10]]])
我有更大的一组输入和我有一个函数返回一个类似于'b2'的数组,它向我提供了我应该获取的信息。因此,我可以知道我应该填入c2 = ?
以获得期望的结果吗?
对于那个期望的输出,'b2'不应该是'np.array([[1,0],[0,1],[1,0]])'(最后一行交换)吗? –
@ajcr感谢您发现错误! :) – kent