python - Numpy,3d 数组的所有成对相关性

标签 python numpy scipy

我有一个形状为 (l,m,n) 的数组。我正在尝试计算形状为 (l,m,n) 的距离矩阵,其中条目 (i,j,k) 是向量 (i,j,:) 和 (i,:,k) 之间的系数。我在 numpy 或 scipy 中没有找到任何符合要求的内容。

我尝试使用 for 循环并沿轴 0 迭代,然后将其提供给 scipy.spatial.distance.pdist,但这需要很长时间,因为 pdist 本身使用嵌套的 for 循环。本质上,我想要做的是沿着轴 0 执行 pdist,但理想情况下使 pdist 也不使用 for 循环......

有什么想法吗?

最佳答案

我个人会编写一个小的 Cython 函数来执行此操作( http://cython.org )。编写并测试迭代纯 Python 版本(带有 for 循环),将其移至 .pyx Cython 文件,添加类型声明并遵循 NumPy 集成指南:

http://docs.cython.org/src/tutorial/numpy.html

可能看起来像是工作,但如果您使用 Python 进行计算,一些基本的 Cython 技能非常值得培养,因为它使编写 C 扩展变得更加容易。

关于python - Numpy,3d 数组的所有成对相关性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7689868/

相关文章:

python - 非常基本的 SymPy 错误

pandas - 在两个 pandas 系列上应用 ttest_ind 时,t-stats 值的意义是什么?

python - 同时线性拟合 2d numpy 数组的每一行

python - 使用分隔符 python 跟踪数组中的项目

python - 在 Linux 上从 Python 连接到 protected WiFi

python - List 上的动态子字符串。变量前 10 个元素

python - 如何在 python 中以列表形式获取子进程命令的输出?

arrays - Numpy 连接很慢 : any alternative approach?

python - 如何检查一个数据框列在其他四个数据框的列中是否可用?

python - 如何从以下向量中获取具有最高值的 5 个元组?