Python Numpy中的组合学

发布于 2025-01-20 12:43:28 字数 342 浏览 1 评论 0原文

我想编写一个单个功能,以输出2个矩阵的所有可能组合:

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])

I'd like to write a single function that outputs all the possible combinations of 2 matrixes:

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

However when passed:

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

It outputs:

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

How can I make it work? I would like to keep it automatic, not to simply pass (args[0], args[1])

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

人事已非 2025-01-27 12:43:28

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]])

A straight forward use of 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)]

or as array:

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]])
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文