【发布时间】:2018-09-27 15:30:46
【问题描述】:
我有两个 numpy 数组,第一个数组大小为 100*4*200,第二个数组大小为 150*6*200。事实上,我在数组 1 中存储了 4 个字段的 200 维向量表示的 100 个样本,在数组 2 中存储了 6 个字段的 200 维向量的 140 个样本。
现在我想计算样本之间的相似度向量并创建一个相似度矩阵。对于每个样本,我想计算每个字段组合之间的相似性并将其存储起来,以便得到一个 15000*24 维数组。
前 150 行将是数组 1 的第 1 行和数组 2 的 150 行之间的相似度向量,接下来的 150 行将是数组 1 的第 2 行和数组 2 的 150 行之间的相似度向量,依此类推。 每个相似度向量是数组 1 中的 # 个字段 * 数组 2 中的 # 个字段,即相似度向量的第一个元素是数组 1 的字段 1 和数组 2 的字段 1 之间的余弦相似度,第二个元素将是数组 1 的字段 1 之间的相似度和数组2的字段2,以此类推,最后一个元素是数组1的最后一个字段和数组2的最后一个字段的相似度。
使用 numpy 数组执行此操作的最佳方法是什么?
【问题讨论】:
-
如果可以使用sklearn take a look at this.
-
@StefanFalk 我不确定它是否回答了这个问题。我需要找到每个字段的向量之间的余弦相似度。我的数组是 (m,n,k) 维度而不是 (m,n) 数组
标签: python arrays python-2.7 numpy