【发布时间】:2017-03-09 11:34:49
【问题描述】:
需要一些想法。我确信有一种巧妙的 Python 方式可以做到这一点,而无需诉诸于“单元格”重建数组。
背景: 我正在尝试从我们用来整理群众工作者判断的系统中操纵一个大型摘要。我正在格式化数据,以便它采用合适的格式来推送 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' 的数量排序。注意我不想想按列排序。而是对列本身进行排序。
我想要一个选项来指定有多少前导列被单独保留(不移动),因为这取决于时间。并按升序/降序排序。顶行是标题,谁的值索引 col。所有值都是 int 或 'na',标题是字符串。
在这个例子中。如果我想保留'a' col 并按'na 的降序排序,输出将是:
a = np.array([['a','c','d','e','b'],
[1, 3, 4, 5, 2],
[1, 'na', 'na', 'na',2],
[1, 'na', 4, 5, 2]])
欢迎任何巧妙的数组操作建议!
【问题讨论】:
-
发布的解决方案对您有用吗?
标签: python arrays sorting numpy