【问题标题】:Mulitply entire array with entries from another array independently将整个数组与另一个数组中的条目相乘
【发布时间】:2020-10-18 01:11:11
【问题描述】:

假设我有一个大小为 2x1 的数组和另一个大小相同的数组。我想将第二个数组中的每个元素分别与第一个数组相乘,得到一个大小为 4x1 的数组。假设我有以下数组:

my_array_1 = array([[1.],
                    [1.]])

my_array_2 = array([[5.],
                    [1.]])

结果应该如下:

result_array = array([[5.],
                     [5.],
                     [1.],
                     [1.]])

我知道迭代索引以使用 for 循环获得结果数组,但是有没有更有效的方法,例如NumPy 函数调用?

【问题讨论】:

    标签: python arrays numpy loops matrix-multiplication


    【解决方案1】:

    看看numpy.kron

    In [35]: np.kron(my_array_2, my_array_1)                                        
    Out[35]: 
    array([[5.],
           [5.],
           [1.],
           [1.]])
    

    【讨论】:

      【解决方案2】:

      这对我来说最直接:

      >>> a1 = array([[5],[1]])
      >>> a2 = array([1,2])
      >>> (a1*a2).flatten()
      array([ 5, 10,  1,  2])
      

      但如果你想要的正是你所要求的,你应该选择Warren's answer

      【讨论】:

      • 拉威尔比展平要好,因为结果不需要复制。
      猜你喜欢
      • 1970-01-01
      • 2023-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-10
      • 1970-01-01
      相关资源
      最近更新 更多