【问题标题】:Combine two arrays with different dimensions in numpy在numpy中组合两个不同维度的数组
【发布时间】:2020-01-01 13:10:26
【问题描述】:

我希望合并两个数组...

a = np.array(["A", "B", "C"])
b = np.array(["1", "2", "3", "4", "5"])

放入类似这样的数组(矩阵)中:

[["A", "B", "C", "1"]
 ["A", "B", "C", "2"]
 ["A", "B", "C", "3"]
 ["A", "B", "C", "4"]
 ["A", "B", "C", "5"]]

我尝试了一个 for 循环,但它似乎不起作用。我是 Python 新手,任何帮助将不胜感激。 谢谢。

【问题讨论】:

标签: python arrays for-loop


【解决方案1】:
>>> np.hstack((np.tile(a, (len(b), 1)), b[:, None]))
array([['A', 'B', 'C', '1'],
       ['A', 'B', 'C', '2'],
       ['A', 'B', 'C', '3'],
       ['A', 'B', 'C', '4'],
       ['A', 'B', 'C', '5']], dtype='<U1')

【讨论】:

    【解决方案2】:

    这样就可以了:

    import numpy as np
    
    a = np.array(["A", "B", "C"])
    b = np.array(["1", "2", "3", "4", "5"])
    
    c=np.hstack([np.broadcast_to(a, shape=(len(b), len(a))), b.reshape(-1,1)])
    

    输出:

    [['A' 'B' 'C' '1']
     ['A' 'B' 'C' '2']
     ['A' 'B' 'C' '3']
     ['A' 'B' 'C' '4']
     ['A' 'B' 'C' '5']]
    

    【讨论】:

      【解决方案3】:

      一种方法是:

      import numpy as np
      
      a = np.array(["A", "B", "C"])
      b = np.array(["1", "2", "3", "4", "5"])
      
      output=[]
      
      for i in list(b):
          a_list=list(a)
          a_list.append(i)
          output.append(a_list)
      
      output=np.asarray(output)
      
      print(output)
      

      结果如愿:

      [['A' 'B' 'C' '1']
       ['A' 'B' 'C' '2']
       ['A' 'B' 'C' '3']
       ['A' 'B' 'C' '4']
       ['A' 'B' 'C' '5']]
      >>> 
      

      【讨论】:

        【解决方案4】:

        也许使用 Python list comprehensionnp.append

        >>> [np.append(a,x) for x in b]
        [array(['A', 'B', 'C', '1'],
              dtype='<U1'), array(['A', 'B', 'C', '2'],
              dtype='<U1'), array(['A', 'B', 'C', '3'],
              dtype='<U1'), array(['A', 'B', 'C', '4'],
              dtype='<U1'), array(['A', 'B', 'C', '5'],
              dtype='<U1')]
        

        根据您的需要,您可以将结果包装为 np.array:

        >>> np.array([np.append(a,x) for x in b])
        array([['A', 'B', 'C', '1'],
               ['A', 'B', 'C', '2'],
               ['A', 'B', 'C', '3'],
               ['A', 'B', 'C', '4'],
               ['A', 'B', 'C', '5']],
              dtype='<U1')
        

        【讨论】:

          猜你喜欢
          • 2019-09-19
          • 2021-12-18
          • 2021-05-02
          • 2022-12-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多