Python 中的矢量化
pythonserver side programmingprogramming更新于 2025/10/24 8:44:17
在本文中,我们将了解矢量化以及使用 Python 3.x 或更早版本实现所涉及的各种技术。
什么是矢量化?
矢量化是一种无需使用循环即可实现数组的技术。改用函数可以帮助有效地最大限度地减少代码的运行时间和执行时间。各种操作都是在向量而不是数组上执行的,例如向量的点积,也称为标量积,因为它产生单个输出,外积产生维度等于(长度 X 长度)向量的方阵,元素乘法将相同索引的元素相乘,矩阵的维度保持不变。
点积 / 内积

让我们看看实现
示例
import time
import numpy
import array
p = array.array('q')
for i in range(100000,200000):
p.append(i);
q = array.array('q')
for i in range(200000, 300000):
q.append(i)
# 经典点积
tic = time.process_time()
dot_value = 0.0;
for i in range(len(a)):
dot_value += p[i] * q[i]
toc = time.process_time()
print("dot_product of vector arrays = "+ str(dot_value));
print("计算时间 = " + str(1000*(toc - tic )) + "ms")
n_tic = time.process_time()
n_dot_product = numpy.dot(a, b)
n_toc = time.process_time()
print("\nn_dot_product of vector arrays = "+str(n_dot_product))
print("计算时间 = "+str(1000*(n_toc - n_tic))+"ms")
输出
dot_product of vector arrays = 3833313333350000.0 计算时间 = 116.51723400000068ms n_dot_product of vector arrays = 3833313333350000 计算时间= 2.5412239999997865ms
现在让我们详细讨论一下上面使用的函数
outer(a, b) − 该函数以两个 numpy 数组作为输入变量,返回两个向量的外积。
multiply(a, b) − 该函数以两个 numpy 数组作为输入变量,返回两个数组的矩阵积。
dot(a, b) − 该函数以两个 numpy 数组作为输入变量,返回两个数组的点积。
zeros((n, m)) − 该函数采用形状 &类型作为输入变量并返回给定形状和类型的矩阵,用零初始化。
process_time() − 此函数返回当前进程的系统和用户 CPU 时间总和的值(以秒为单位)。它不包括睡眠期间经过的时间
结论
在本文中,我们了解了 Python 中的矢量化。
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

