Python:如何将行和列中的每个元素相乘而不会循环

时间:2018-11-06 18:19:41

标签: python

在Python中,我有一个列数组和一个行数组,例如[1、3、5]和[2、4、6、8]',我想通过乘以创建大小为4 * 3的矩阵他们两个中的每个元素。可以不循环而做吗?

2 个答案:

答案 0 :(得分:2)

最好使用numpy完成矢量化计算:

import numpy as np

x = np.arange(1,6,2) # [1,3,5]
y = np.arange(2,9,2) # [2,4,6,8]
x = np.array([x]) # add dimension for transposing.
y = np.array([y])
result = np.dot(x.T, y)

结果:

array([[ 2,  4,  6,  8],
       [ 6, 12, 18, 24],
       [10, 20, 30, 40]])

答案 1 :(得分:0)

您可以使用以下代码

将numpy导入为np

>>> x1 = np.arange(2,9,2)   # [2,4,6,8]
>>> x2 = np.arange(1,6,2)   # [1,3,5]
>>> result = x1.dot(x2)
>>> print result