您如何在 Python 中高效地执行数百万次 t 检验?

How do you efficiently perform millions of t-tests in Python?

长话短说,我需要进行数亿次 t 检验。我有两个样本列表,ysns,我想比较每个列表中的一个样本,因此 ys 中的第一个样本将与 [= 中的第一个样本进行比较13=] 等等。结果将是一个 p 值列表,每个比较都有一个。最快的方法是什么?目前,我正在使用 map 函数

p_values = [result[1] for result in list(map(ttest_ind, ys, ns))]

但还是很慢。 numpy.vectorize 看起来它可能更快,但我不知道如何将它与将两个列表作为输入的函数一起使用。如果我硬编码 t 检验数学而不是使用 scipy.stats.ttest_ind 会更快吗?

整个思路是:不是 运行 这个在 Python,而是在 C/C++。

你有两个选择:

  1. 自己写在C/C++里,用Python连起来。
  2. 尝试使用 C/C++ 支持的库,例如 Numpy。将数据打包为 Numpy 类型并使用 Numpy 函数对其进行操作。后端是C/C++中的运行,和1一样,会简单很多。