使用numpy构建两个数组的所有组合的数组

使用numpy构建两个数组的所有组合的数组,第1张

使用numpy构建两个数组的所有组合的数组

numpy
(> 1.8.x)的较新版本中,
numpy.meshgrid()
提供了更快的实现:

@PV的解决方案

In [113]:%timeit cartesian(([1, 2, 3], [4, 5], [6, 7]))10000 loops, best of 3: 135 µs per loopIn [114]:cartesian(([1, 2, 3], [4, 5], [6, 7]))Out[114]:array([[1, 4, 6],       [1, 4, 7],       [1, 5, 6],       [1, 5, 7],       [2, 4, 6],       [2, 4, 7],       [2, 5, 6],       [2, 5, 7],       [3, 4, 6],       [3, 4, 7],       [3, 5, 6],       [3, 5, 7]])

numpy.meshgrid()只能用于2D,现在可以ND。在这种情况下,3D:

In [115]:%timeit np.array(np.meshgrid([1, 2, 3], [4, 5], [6, 7])).T.reshape(-1,3)10000 loops, best of 3: 74.1 µs per loopIn [116]:np.array(np.meshgrid([1, 2, 3], [4, 5], [6, 7])).T.reshape(-1,3)Out[116]:array([[1, 4, 6],       [1, 5, 6],       [2, 4, 6],       [2, 5, 6],       [3, 4, 6],       [3, 5, 6],       [1, 4, 7],       [1, 5, 7],       [2, 4, 7],       [2, 5, 7],       [3, 4, 7],       [3, 5, 7]])

请注意,最终结果的顺序略有不同。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5646743.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存