python - 有没有办法仅在维度的子集上使用 numpy.outer ?
问题描述
我有一个数组数组,如下所示:
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
我想计算数组元素之间的成对差异,例如:
[[[ 0, 0, 0], [-3, -3, -3]],
[[ 3, 3, 3], [ 0, 0, 0]]
我的第一个想法是使用np.subtract.outer(a, a)
,但这并没有达到我想要的效果 - 它在数组中深入一层。我可以看到我需要的数字在 的输出中np.subtract.outer(a, a)
,但是我实际使用的数组非常大,而且我没有足够的内存来分配结果。
谢谢!
解决方案
您可以简单地使用广播来解决这个问题。
a[:, None, :] - a[None, :, :]
给你你想要的。
推荐阅读
- codeigniter-3 - CodeIgniter form_validation 和 form_error - 删除原始错误信息
- c++ - 在tensorflow中创建新操作时指定shapehandle的形状(输出张量的秩问题)
- css - 模拟器检查外观上的元素
- java - java多线程环境中是否有避免第二次执行类的最佳方法?
- python - 使用多处理报告 OSError 加速 DEAP
- asp.net-mvc - 长时间运行过程中频繁刷新网页
- c++ - 如何在 STM32L475 的 FLASH 内存中交换来自不同存储库的两个内存区域?
- c# - 使 NSwag 生成的客户端中的属性可以为空
- oracle - 无法使用 unixODBC 连接到 Oracle 19
- c# - 使用 Windows 身份验证的 REST API