【发布时间】:2019-08-31 00:22:34
【问题描述】:
我正在尝试获取一个矩阵,(lat, lon) 大小,每个网格点的 Pearson 系数值,对于
x : 一个 3D DataArray (time, lat, lon) (时间大小为 30)
y : 一个 DataArray 列向量,其中包含 30 个值系列
所以我想为 x 的 30 个元素的列向量计算每个 (lat,lon) 的 pearson 系数。
我试过了:
corrmap = xr.DataArray(x2)
for i in range(len(corrmap['lat']))
for j in range(len(corrmap['lon']))
corrmap[i, j], p_value = pearsonr(x[:, i, j], y)
但我收到此错误:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
我无法完全理解其含义。我的方法不正确吗?我应该使用其他类型的代码来解决我的问题吗?
任何帮助将不胜感激。
【问题讨论】:
-
什么是
y.shape? (我假设DataArray对象具有shape属性。) -
pearsonr是从scipy.stats导入的吗?如果不是,它是在哪里定义的? -
对不起,我忘了说 y.shape 是 (30, 1),所以是列向量。是的,我做到了,我从 scipy.stats 正确导入了 pearsonr
-
"... y.shape 是 (30, 1),所以是列向量。" 这就是问题所在。请参阅@JulianGiles 的回答。
标签: python python-3.x correlation python-xarray pearson