【发布时间】:2016-03-12 00:34:57
【问题描述】:
我知道通过Sort N-D numpy array by another 1-D array 使用花哨的索引,我可以用b 定义我想要按列排序的顺序来执行以下c = a[:, :, b]
>>> 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 对应于我想如何对a 中的每组2x2 进行排序
>>> 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 感谢您发现这个错误! :)
标签: python arrays sorting numpy