合并两个 numpy 数组
Combine two numpy arrays
假设我有 2 个 numpy
数组
import numpy as np
x = np.array([1,2,3])
y = np.array([1,2,3,4])
有了这个,我想创建一个二维数组如下
有什么方法可以直接实现吗?
你的问题是写笛卡尔积。在 numpy 中,您可以使用 repeat
和 tile
:
来编写它
out = np.c_[np.repeat(x, len(y)), np.tile(y, len(x))]
Python 的内置 itertools
模块有一个为此设计的方法:product
:
from itertools import product
out = np.array(list(product(x,y)))
输出:
array([[1, 1],
[1, 2],
[1, 3],
[1, 4],
[2, 1],
[2, 2],
[2, 3],
[2, 4],
[3, 1],
[3, 2],
[3, 3],
[3, 4]])
假设我有 2 个 numpy
数组
import numpy as np
x = np.array([1,2,3])
y = np.array([1,2,3,4])
有了这个,我想创建一个二维数组如下
有什么方法可以直接实现吗?
你的问题是写笛卡尔积。在 numpy 中,您可以使用 repeat
和 tile
:
out = np.c_[np.repeat(x, len(y)), np.tile(y, len(x))]
Python 的内置 itertools
模块有一个为此设计的方法:product
:
from itertools import product
out = np.array(list(product(x,y)))
输出:
array([[1, 1],
[1, 2],
[1, 3],
[1, 4],
[2, 1],
[2, 2],
[2, 3],
[2, 4],
[3, 1],
[3, 2],
[3, 3],
[3, 4]])