需要一些关于此的想法。我确信有一个聪明的pythonic方法来做到这一点,而不是诉诸阵列的'单元格'重建。根据内容重新排列numpy数组中的列(具体值的计数)
背景: 我试图操纵我们用来整理众包工作者判断的系统中的一个大型摘要。我正在格式化数据,因此它采用合适的格式来推送OpenBugs以及可能后来的PyMC。
我有以下格式的大型np数组,有多达500列和许多1000行。这是简化的示例:
a = np.array([['a','b','c','d','e'],
[1, 2, 3, 4, 5],
[1, 2, 'na', 'na','na'],
[1, 2, 'na', 4, 5]])
所需的结果:我要重新排序(理想地就地)中的数据,使得它们通过其出现在列的'na'
数进行排序的列。 NB我不要想排序一个上校。而是自己对列进行排序。
我想要一个选项来指定有多少主导列独立(不移动),因为这取决于时间。并按升序/降序排序。最上面一行是一个标题,谁的值指向列。所有的值都是int或'na',而头是一个字符串。
所以在这个例子中。如果我想的'na
降号码留在原地'a'
关口,并排序输出将是:
a = np.array([['a','c','d','e','b'],
[1, 3, 4, 5, 2],
[1, 'na', 'na', 'na',2],
[1, 'na', 4, 5, 2]])
任何聪明的数组操作建议表示欢迎!
发布的解决方案是否适合您? – Divakar