Py学习  »  Python

python:如何在不循环的情况下将行和列中的每个元素相乘

TingTing • 4 年前 • 593 次点击  

在python中,我有一个列数组和一个行数组,比如,[1,3,5]和[2,4,6,8]'我想通过将它们中的每个元素相乘来创建一个4*3大小的矩阵。有没有可能不用循环呢?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/46127
 
593 次点击  
文章 [ 2 ]  |  最新文章 4 年前
Prasan Karunarathna
Reply   •   1 楼
Prasan Karunarathna    5 年前

你可以使用下面的代码

将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
Rocky Li
Reply   •   2 楼
Rocky Li    5 年前

矢量化计算最好使用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]])