我想对第一列(N, 2)
形状的矩阵进行排序,其中N
>;系统内存。你知道吗
使用内存numpy,您可以执行以下操作:
x = np.array([[2, 10],[1, 20]])
sortix = x[:,0].argsort()
x = x[sortix]
但这似乎需要x[:,0].argsort()
放入内存,这对于N
>;系统内存的memmap不起作用(如果这个假设是错误的,请纠正我)。你知道吗
我能用numpy memmap实现这类功能吗?你知道吗
(假设heapsort用于排序,并使用简单的数字数据类型)
Tags:
解决方案可能很简单,将order参数用于in-placesort。当然,
order
需要字段名,因此必须首先添加这些字段名。你知道吗字段名是字符串,与列索引相对应。排序可以在适当的地方进行
然后转换回具有原始数据类型的常规数组
尽管您可能需要根据数据在磁盘上的存储方式来更改视图的获取方式,但这应该是可行的,请参见the docs
@user2699漂亮地回答了这个问题。我将添加这个解决方案作为一个简化的示例,以防您不介意将数据保留为structured array,这样就消除了视图。你知道吗
数据类型格式也是documented here。你知道吗
相关问题 更多 >
编程相关推荐