标量乘法两个2darray

时间:2017-10-27 21:07:08

标签: python arrays numpy

我有以下问题。 我有两个大小为(4,2)的2d数组

a = [[1 1]
[1 1]
[1 1]
[2 2]] 

b = [[2 3]
[2 2] 
[3 4] 
[1 4]] 

我想做列式标量乘法

a * b = [[2, 3] 
[2 2]
[3 4]
[2 8]]

2 个答案:

答案 0 :(得分:1)

import numpy as np
c = np.multiply(a, b)

如果你想避免numpy(不建议):

c = [[i*j for i, j in zip(*v)] for v in zip(a, b)]

另外,如果你想要numpy的效率,但确实需要list而不是numpy数组,那么将c转换为如下所示的列表:

import numpy as np
c = np.multiply(a, b).tolist()

答案 1 :(得分:0)

请试试这个。它应该解决你的问题。

def func():
    a = [[1,1],[1,1],[1,1],[2,2]]
    b = [[2,3],[2,2],[3,4],[1,4]]
    c = []
    for i in range(len(a)):
        c.append([a[i][0]*b[i][0], a[i][1]*b[i][1]])
    print c

func()