簡體   English   中英

合並兩個不相等的數組

[英]Combining two unequal arrays

我使用numpy創建了兩個一維的列數組-一個具有100個單元格,第二個10000個單元格。 我現在想做的是編寫一個二維數組,其中第一個數組(每個單元有100個元素)的每個單元格都寫入了第二個數組的所有10000個值。 解釋它的小例子:

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

b =  
  [[4],
   [5]]

我想獲得:

c = [[1], [4],
     [1], [5],
     [2], [4],
     [2], [5],
     [3], [4],
     [3], [5]]

我試圖找到任何解決方案,但未成功。 我希望在這里尋求幫助。 干杯,喬恩

這是你想要的嗎? 我使用函數np.repeat重復每個單獨的元素(第一個數組),並使用np.tile重復整個數組(第二個數組)。

>>> import numpy as np
>>> a = np.array([[1],[2],[3]])
>>> b = np.array([[4],[5]])
>>> 
>>> at = np.repeat(a, len(b), axis = 0)
>>> at
array([[1],
       [1],
       [2],
       [2],
       [3],
       [3]])
>>> bt = np.tile(b, (len(a), 1))
>>> bt
array([[4],
       [5],
       [4],
       [5],
       [4],
       [5]])
>>> np.concatenate((at, bt), axis = 1)
array([[1, 4],
       [1, 5],
       [2, 4],
       [2, 5],
       [3, 4],
       [3, 5]])

您需要itertools.product

In [2]: import itertools

In [3]: scipy.array(list(itertools.product([1,2,3], [4,5])))
Out[3]: 
array([[1, 4],
       [1, 5],
       [2, 4],
       [2, 5],
       [3, 4],
       [3, 5]])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM