【发布时间】:2021-09-17 08:02:10
【问题描述】:
假设我有以下数组:
x = array([[[2, 5],
[6, 7]],
[[8, 1],
[4, 9]]])
我想对每个子数组的第一列进行排序以获得以下结果:
out = array([[[2, 5],
[6, 7]],
[[4, 9],
[8, 1]]])
所以当运行以下代码时:
x[:,x[:,:,0].argsort()]
结果是:
out1 = array([[[[2, 5],
[6, 7]],
[[6, 7],
[2, 5]]],
[[[8, 1],
[4, 9]],
[[4, 9],
[8, 1]]]])
事实证明,我想要的结果在这个 2x2 矩阵的对角线上,所以我仍然可以获得想要的结果,但我不明白非对角线是什么。它们甚至看起来都没有以任何方式排序。
非对角数组从何而来?
另外,我怎样才能得到我想要的结果,而不必通过这个相当大且无用的数组 (out1)?
【问题讨论】:
-
尝试结构化数组
标签: python arrays numpy multidimensional-array