Py学习  »  Python

python numpy中的组合数学

Fatafim • 4 年前 • 1702 次点击  

我想写一个函数,输出两个矩阵的所有可能组合:

def combine(*args):
    return np.array(np.meshgrid(args)).T.reshape(-1, len(args)+1)

然而,当通过时:

print(combine(np.array([1,2,3]), np.array([4,5,6])))

它输出:

[[1 2 3]
 [4 5 6]]

我该怎么做?我想让它保持自动,而不是简单地传递(args[0],args[1])

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/131327
文章 [ 1 ]  |  最新文章 4 年前
hpaulj
Reply   •   1 楼
hpaulj    4 年前

直接使用python itertools:

In [134]: import itertools
In [135]: a,b = [1,2,3], [4,5,6]
In [137]: list(itertools.product(a,b))
Out[137]: [(1, 4), (1, 5), (1, 6), (2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6)]

或作为数组:

In [145]: np.array(list(itertools.product(a,b)))
Out[145]: 
array([[1, 4],
       [1, 5],
       [1, 6],
       [2, 4],
       [2, 5],
       [2, 6],
       [3, 4],
       [3, 5],
       [3, 6]])