【发布时间】:2016-07-07 19:51:15
【问题描述】:
如何在 Cython 中对内存视图进行就地排序?有没有内置函数可以做到这一点?现在我必须改用numpy 数组并使用numpy 的排序,这非常慢。
【问题讨论】:
-
是
numpy.sort的性能问题还是将memoryview 复制到numpy 数组的成本问题?如果是后者,那么np.asarray(memview)应该可以在没有副本的情况下工作。 -
@DavidW 是
numpy.sort的性能问题 -
您可以尝试告诉 numpy 使用不同的算法(我认为它可以选择 3)。如果这没有帮助,您可以使用 C++ 标准库 cplusplus.com/reference/algorithm/sort。您可以将它与指针一起使用,因此它类似于
sort(&memview[0],&memview[length])(请注意,您将它传递到末尾的一个元素。不过,您需要使用 C++ 编译它。
标签: python cython memoryview