【问题标题】:adding arrays of different dimension in all cases python在所有情况下添加不同维度的数组 python
【发布时间】:2022-12-10 16:20:41
【问题描述】:
x = np.array([[1],[1],[3]])
y = np.array([[1],[2]])
x+y

我有几个数组想加在一起,它们的结构与上面的例子一样。我想将这些数组加在一起,如果维度不匹配,我想将 0 添加到该值。即结果应该是

array([[2],
       [3],
       [3]])

我不知道“x”或“y”中哪个维度更高。有没有好的方法来处理这个问题?我尝试将数组的大小调整为两者之间的最大尺寸但没有运气

【问题讨论】:

    标签: python numpy


    【解决方案1】:

    只需创建另一个长度较长的数组,然后用零填充空值即可。

    import numpy as np
    
    def sum_padded(x,y):
        if len(x) > len(y):
            new_arr = np.zeros_like(x)
            new_arr[:len(y)] = y
            return x + new_arr
        elif len(x) < len(y):
            new_arr = np.zeros_like(y)
            new_arr[:len(x)] = x
            return y + new_arr
        else:
            return x + y
    
    x = np.array([[1],[1],[3]])
    y = np.array([[1],[2]])
    
    res = sum_padded(x,y)
    print(res)
    
    [[2]
     [3]
     [3]]
    

    【讨论】:

      猜你喜欢
      • 2014-08-01
      • 1970-01-01
      • 2020-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-11
      • 2018-03-26
      • 1970-01-01
      相关资源
      最近更新 更多