Numpy:形状数组(N,3)和形状数组(M,3)之间的差异,其中M < 3

b1uwtaje  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(107)

我有一个形状为(N, 3)A数组和一个形状为(M, 3)的数组B,其中M < N
我想创建一个形状为(M, N, 3)的数组形状C,其中形状(3 ,N)C[i, :, :]A中所有点与Bith点之间的差:

C[i, :, :] == A - B[i]

奥尔更明确地说:

C[i, :, :] == A[:, :] - B[i, :]

使用向量化的Numpy操作轻松实现它而不必依赖循环的最佳方法是什么?

q3aa0525

q3aa05251#

你可以使用numpy's broadcasting

C = (A[None] - B[:, None])
3df52oht

3df52oht2#

您可以广播:

C = A[None] - B[:, None]

形状:

# A[None].shape
(1, N, 3)

# B[:,None].shape
(M, 1, 3)

# C.shape
(M, N, 3)

相关问题