我正在创建一个包含股票收益的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