You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对多三维数组对应元素执行单样本t检验并生成结果数组

解决三维数组对应元素的单样本t检验问题

核心思路

要实现每个对应位置元素的单样本t检验,关键是将多个数组在新增维度上堆叠,让每个位置的所有样本集中在这个新维度,再指定t检验函数沿该维度计算,最终得到与原数组维度一致的结果。

实现步骤与代码示例

  1. 导入依赖库
import numpy as np
from scipy.stats import ttest_1samp
  1. 定义输入数组
a = np.array([[[1,2,3,4], [5,6,7,8], [9,10,11,12]]])
b = np.array([[[13,14,15,4], [1,6,9,10], [1,0,.5, .2]]])
c = np.array([[[0,0,1,2], [1,1,3,4], [4,1,11,17]]])
  1. 堆叠数组到新增维度
    使用np.stack在最后一个维度(axis=-1)堆叠,这样每个原位置的元素会形成一个长度为3的样本集合,堆叠后的数组形状为(1, 3, 4, 3):
combined = np.stack([a, b, c], axis=-1)
  1. 执行单样本t检验
    调用ttest_1samp,指定axis=-1沿样本维度计算,popmean是你要检验的总体均值(这里以0为例,可根据需求修改):
t_values, p_values = ttest_1samp(combined, popmean=0, axis=-1)
  1. 验证结果维度
    此时t_values和p_values的形状均为(1, 3, 4),与原输入数组完全一致,每个位置存储对应元素的t值和p值。

为什么之前的方法不适用

np.vstack/hstack会改变原数组的维度结构(比如把多个(1,3,4)数组变成(3,3,4)),导致无法对应到原位置的样本集合。而np.stack新增维度的方式,能完美保留原数组的位置信息,让t检验可以精准针对每个位置的样本组计算。

内容的提问来源于stack exchange,提问作者Aswiderski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 13:57:22