我有一个名为 coefficients
的 NxM 矩阵,我想对它进行排序:
import numpy
N = 10
M = 42
coefficients = numpy.random.uniform(size=(N, M))
我有一个名为 order
的数组,其中包含 N
元素,表示 coefficients
行的顺序:
order = numpy.random.choice(range(N), N, False)
我正在通过排序 order
来排序 coefficients
:
coefficients = numpy.array([mag for (orig, mag)
in sorted(zip(order, coefficients),
key=lambda pair: pair[0])])
这行得通,但可能比预期的要慢。如果这是一维的,我会使用 fromiter
,但我不知道如何解决这个问题,因为它是二维的。我可以在这里进行优化吗?
最佳答案
要回答您的问题,只需coefficients[order.argsort()]
就足够了:)
关于python - 如何优化这个 numpy 二维排序数组的创建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24792074/