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

如何计算多维NumPy数组中各输入参数与输出的相关性

计算输入通道与输出的相关性

要得到13个输入参数(通道)各自与输出的相关值,核心思路是对每个输入通道和输出的所有像素点(跨所有样本)计算相关性指标,具体实现步骤如下:

步骤说明

  1. 数组形状调整:先去掉输出数组最后一维(维度为1),让输出形状与单个输入通道一致((245,128,128))。
  2. 数据拉平:将每个输入通道和输出都拉平成一维数组,把所有样本、所有像素的数值放在一起,方便计算整体相关性。
  3. 计算相关系数:对每个输入通道的拉平数组和输出的拉平数组,计算皮尔逊相关系数(最常用的线性相关性指标),最终得到13个对应值。

代码实现

使用Python的numpy和scipy.stats即可完成计算:

import numpy as np
from scipy.stats import pearsonr

# 假设输入数组为X,形状(245,128,128,13)
# 输出数组为y,形状(245,128,128,1)

# 去掉输出的最后一维,并拉平为一维数组
y_flattened = y.squeeze(axis=-1).flatten()

correlation_values = []
for channel_idx in range(13):
    # 取出当前输入通道并拉平
    x_channel_flattened = X[..., channel_idx].flatten()
    # 计算皮尔逊相关系数,返回值第一个是相关系数,第二个是p值(可忽略)
    corr, _ = pearsonr(x_channel_flattened, y_flattened)
    correlation_values.append(corr)

# correlation_values就是13个输入通道对应的相关值
print(correlation_values)

可选方案:非线性相关性

如果需要考虑非线性单调相关性,可以将pearsonr替换为scipy.stats.spearmanr,用法完全一致:

from scipy.stats import spearmanr

# ... 其余代码不变
corr, _ = spearmanr(x_channel_flattened, y_flattened)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 08:45:38