Python 无迭代器和/或循环的Numpy数组的组合/笛卡尔积

Python 无迭代器和/或循环的Numpy数组的组合/笛卡尔积,python,arrays,numpy,scipy,itertools,Python,Arrays,Numpy,Scipy,Itertools,下面的代码 import numpy as np import itertools a_p1 = np.arange(0, 4, 1) a_p2 = np.arange(20, 25, 1) params = itertools.product(a_p1, a_p2) for (p1, p2) in params: print(p1, p2) 输出 (0, 20) (0, 21) (0, 22) (0, 23) (0, 24) (1, 20) (1, 21) (1, 22) (1,

下面的代码

import numpy as np
import itertools

a_p1 = np.arange(0, 4, 1)
a_p2 = np.arange(20, 25, 1)

params = itertools.product(a_p1, a_p2)
for (p1, p2) in params:
    print(p1, p2)
输出

(0, 20) (0, 21) (0, 22) (0, 23) (0, 24) (1, 20) (1, 21) (1, 22) (1, 23) (1, 24) (2, 20) (2, 21) (2, 22) (2, 23) (2, 24) (3, 20) (3, 21) (3, 22) (3, 23) (3, 24)
2嵌套for循环也可以输出相同的结果

for i, p1 in enumerate(a_p1):
    for j, p2 in enumerate(a_p2):
        print(p1, p2)
我正在寻找一种解决方案,以这种组合直接输出Numpy数组(元组的Numpy数组)

有没有一种方法可以在没有迭代器和/或for循环的情况下生成这样的Numpy数组

我知道这样的解决方案比使用迭代器消耗更多内存。

安装Scikit Learn

它应该输出

[[ 0 20]
 [ 0 21]
 [ 0 22]
 [ 0 23]
 [ 0 24]
 [ 1 20]
 [ 1 21]
 [ 1 22]
 [ 1 23]
 [ 1 24]
 [ 2 20]
 [ 2 21]
 [ 2 22]
 [ 2 23]
 [ 2 24]
 [ 3 20]
 [ 3 21]
 [ 3 22]
 [ 3 23]
 [ 3 24]]
该解决方案取自一个类似的问题:

请参见相关内容:
[[ 0 20]
 [ 0 21]
 [ 0 22]
 [ 0 23]
 [ 0 24]
 [ 1 20]
 [ 1 21]
 [ 1 22]
 [ 1 23]
 [ 1 24]
 [ 2 20]
 [ 2 21]
 [ 2 22]
 [ 2 23]
 [ 2 24]
 [ 3 20]
 [ 3 21]
 [ 3 22]
 [ 3 23]
 [ 3 24]]