我正在創建一個包含股票收益的2維numpy數組。我想每2天總結一次回報,如果總和位於前兩位,我會將類似陣列中的每個元素設置爲True。在多個NumPy數組上排序
例如,下面的回報是四種不同股票的每日回報。
returns=np.array([
[0, 0, 4, 8],
[7, 5, 4, 1],
[10, 5, 7, 6],
[7, 5, 4, 2]])
對於前兩天,列2和3(使用0基於索引)具有最高的總和。對於第二天的兩天,第0列和第2列的總和最高。輸出數組我想要的是
有什麼好辦法做到這一點?
如果與兩天的總和有關係,我想使用另一個類似形狀的numpy數組作爲tiebreakers。
例如,如果
returns=np.array([
[0, 9, 4, 8],
[7, 5, 4, 0],
[10, 5, 7, 6],
[7, 5, 4, 2]])
對於第一組的兩個天,列2和3並列第二最高總和。我想根據最後一列中的最大值決定tie tieer,以便第2和第3列之間的平局突破可以查看tiebreaks [1] [2] vs tiebreaks [1] [3](4 v 5) ,最終的輸出是bools2。
tiebreaks=np.array([
[0, 0, 1, 1],
[2, 3, 4, 5],
[0, 5, 7, 6],
[-7, 5, -4, 2]])
bools2=np.array([
[False, True, False, True],
[False, True, False, True],
[True, False, True, False],
[True, False, True, False]])
感謝您的幫助。
在你的榜樣,事情已經出現,根據您的分類條件和'names'數組有明顯不必要的維度。如果你能提供一個更現實的例子和期望結果的例子,這將是有幫助的。 – Paul 2011-04-25 15:14:38
你的編輯已經使這個完全不同的問題。請回滾編輯並改爲提出新問題。 – 2011-04-26 12:25:39