首页 > 解决方案 > 如何从 2 个 numpy 数组中创建一个双向表?

问题描述

我有 2 个来自 numpy 的数字数组,A长度Biji != j

我想与他们制作一个双向表,以计算 的每个元素B与 的所有元素的差异A

我知道如何使用 for 循环计算每个元素之间的差异,但这使我无法知道从哪些元素B[i]中计算A[j]C[i][j]差异(我需要进一步分析)。

我假设可以使用 pandas 轻松创建此表,但不知道哪个函数或如何实现它。提前致谢。

标签: pythonpython-3.xnumpy

解决方案


这是你要找的吗?

import numpy as np

# Sample data
x = np.random.randint(0,10,5)
y = np.random.randint(0,10,3)

diff_matrix = x[:,None]-y[None,:]

你得到:

In [1]: print(x)
[2, 8, 0, 8, 8]

In [2]: print(y)
[7, 0, 6]

In [3]: print(diff_matrix)
[-5,  2, -4],
[ 1,  8,  2],
[-7,  0, -6],
[ 1,  8,  2],
[ 1,  8,  2]]

diff_matrix[i,j]也是_x[i]-y[j]


推荐阅读