我有一个名为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)
我正在按coefficients
排序order
:
coefficients = numpy.array([mag for (orig, mag)
in sorted(zip(order, coefficients),
key=lambda pair: pair[0])])
这样可行,但它可能比它应该慢。如果这是1D,我会使用fromiter
,但我不知道如何解决这个问题,因为它是2D。我可以在这里进行优化吗?