gpt4 book ai didi

python - Numpy 减法函数的数学符号

转载 作者:太空宇宙 更新时间:2023-11-04 04:04:49 24 4
gpt4 key购买 nike

我注意到这个 question已在此站点上标记为主题,因此,我要问这个问题。

我有以下代码。

norm = np.linalg.norm(true_warped_keypoints - warped_keypoints, ord=None, axis=2)
N1 = true_warped_keypoints.shape[0]
N2 = warped_keypoints.shape[0]
distance_thresh=3
if N2 != 0:
min1 = np.min(norm, axis=1)
count1 = np.sum(min1 <= distance_thresh)
if N1 != 0:
min2 = np.min(norm, axis=0)
count2 = np.sum(min2 <= distance_thresh)
if N1 + N2 > 0:
repeatability.append((count1 + count2) / (N1 + N2))

我想用数学表示从 here 中获取的这段代码.假设 true_warped_keypoints 是一个形状为 10x1x2 的 numpy 数组,而 warped_keypoints 的形状为 1x4x2

从数学上讲,两个矩阵的减法需要相同的维度,但 numpy 会像代码的第一行那样进行元素减法。

我的问题如下:

  1. 如何以数学方式表示第一行中的减法?
  2. 按照该表示,我如何表示 min1 = np.min(norm, axis=1)min2 = np.min(norm, axis=0)数学上?

下面是一个简单的示例,用于尝试对不同形状的数组进行减法。

A = np.array([[[1,1],[1,2],[1,3],[1,4],[1,5],[1,6]]])
B = np.array([[[1,1]],[[1,2]],[[1,3]],[[1,4]],[[1,5]]])
C=A-B

最佳答案

您可以将数组写成张量:

A = A_ijk, (其中 1 ≤ i ≤ 10, j=1, 1 ≤ k ≤ 2)

B和C也一样,那么你可以定义C的每个元素为

C_ijk = A_i1k - B_1jk(对于 1 ≤ i ≤ 10, 1 ≤ j ≤ 4, 1 ≤ k ≤ 2)

注意 A_ijk = A[i-1,j-1,k-1]

为了表示范数,我们将定义二阶张量: 有了这个定义,我们现在可以按分量定义最小向量 m^1, m^2:

关于python - Numpy 减法函数的数学符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57565547/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com