需要一些關於此的想法。我確信有一個聰明的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