我有以下问题。 我有两个大小为(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]]
答案 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()