你可能知道如何在python中打印一个比较矩阵,我有5个变量,我将T测试(定义一个函数作为ttest,在两个数据样本之间应用T测试)一个接一个地得到10比较结果,现在我想像结果相关矩阵或表一样可视化结果,以显示结果。列和行标签将是相同的5个变量,每个变量之间的比较结果将填入表中。如果在python中没有这样的功能,也许一些乳胶代码也会很好。
答案 0 :(得分:0)
你的问题非常不清楚,但我想我可以模糊地看到你想要的东西......
因此,您有list
(或其他一些数据类型),其中包含5
个元素,并希望将function
应用于2
元素的每个组合。
我们可以使用itertools.combination
:
>>> import itertools
>>> l = [4, 5, 5, 7, 9]
>>> list(itertools.combinations(l, 2))
[(4, 5), (4, 5), (4, 7), (4, 9), (5, 5), (5, 7), (5, 9), (5, 7), (5, 9), (7, 9)]
如您所见,我们现在可以访问10
种不同的组合。
所以让我们假装你的功能就像一个总和:
def add(a, b):
return a + b
我们现在可以将此功能应用于每个组合,并将结果输出到list
的新list-comprehension
:
[add(*c) for c in itertools.combinations(l, 2)]
,对于我们的例子,它给出了:
[9, 9, 11, 13, 10, 12, 14, 12, 14, 16]
这是正确的。