numpy的correlate函数怎么用在多维数组上?-灵析社区

WhatUpDanger

相关代码就是这一行 match_degree = np.correlate(t, q, mode="full") t和q都是多维数组,这样直接运行是报错的,但我想得到就是它们的线性相关性,请问各位大佬,怎么处理才能得到想要的结果? 补充: 我试了下使用ravel展平数组,但其结果不知道是否可靠,有没有了解这些的,帮忙解释一下吧,多谢 match_degree = np.correlate(t.ravel(), q.ravel(), mode="full")

阅读量:137

点赞量:0

问AI
numpy.correlate函数只能处理一维数组,所以当你有多维数组时,需要将其展平成一维数组。你使用ravel方法将多维数组展平是正确的做法。不过,需要注意的是,将多维数组展平后进行相关性计算,结果是否有意义需要根据你的具体应用场景来判断。 如果你希望在多维数组上进行相关性分析,可以考虑以下几种方法: 逐维相关性:对每一维度分别进行相关性计算,然后汇总结果。 import numpy as np # 示例多维数组 t = np.random.rand(3, 3) q = np.random.rand(3, 3) # 存储每一维度的相关性结果 correlations = [] for i in range(t.shape[0]): correlations.append(np.correlate(t[i, :], q[i, :], mode='full')) # 汇总结果 match_degree = np.array(correlations) print(match_degree)