将二维数组的元素与两个一维数组的乘积进行比较?

Compare elements of 2D array to the product of two 1D arrays?

我正在尝试将二维数组与两个一维数组的乘积(联合概率密度 v.s。其个体概率密度的乘积)进行比较,以确定变量 x 和 y 是否独立,其中独立性给出为 ρ(x,y)=ρ(x)*ρ(y).

假设我将二维数组命名为 h,将一维列表命名为 nm。我将如何遍历 h 来检查它的元素是否等同于 n*m?

要测试是否完全相等,只需使用 np.all()

import numpy as np

m = np.random.rand(10)
n = np.random.rand(20)
h = m.reshape(1, -1) * n.reshape(-1, 1)

print(np.all(h == m.reshape(1, -1) * n.reshape(-1, 1))) # True

要测试数字是否都接近,您可以使用:

print(np.all(np.isclose(h, m.reshape(1, -1) * n.reshape(-1, 1))))