两个数组之间的组合会产生不同的形状

2024-04-26 08:01:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道可以使用meshgrid来获得使用numpy的两个数组之间的所有组合。你知道吗

但在我的例子中,我有一个由两列和n行组成的数组,还有一个数组,我想得到唯一的组合。你知道吗

例如:

a = [[1,1],
     [2,2],
     [3,3]]

b = [5,6]

# The expected result would be:

final_array = [[1,1,5],
               [1,1,6],
               [2,2,5],
               [2,2,6],
               [3,3,5],
               [3,3,6]]

哪种方法是只使用numpy获得此结果的最快方法?你知道吗

建议解决方案

好的,我得到了结果,但我想知道这是否是一个可靠和快速的解决方案,如果有人能给我任何建议,我将不胜感激。你知道吗

a_t = np.tile(a, len(b)).reshape(-1,2)  
b_t = np.tile(b, len(a)).reshape(1,-1) 
final_array = np.hstack((a_t,b_t.T)) 
array([[1, 1, 5],
       [1, 1, 6],
       [2, 2, 5],
       [2, 2, 6],
       [3, 3, 5],
       [3, 3, 6]])

Tags: the方法numpylennp数组解决方案array