Python中的向量化
在本文中,我们将学习向量化以及使用 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) # classic dot product 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("Computation time taken = " + 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("Computation time taken= "+str(1000*(n_toc - n_tic))+"ms")
输出
dot_product of vector arrays = 3833313333350000.0 Computation time taken = 116.51723400000068ms n_dot_product of vector arrays = 3833313333350000 Computation time taken= 2.5412239999997865ms
现在让我们详细讨论上面使用的函数
outer(a, b) - 此函数将两个 numpy 数组作为输入变量,并返回两个向量的外积。
multiply(a, b) - 此函数将两个 numpy 数组作为输入变量,并返回两个数组的矩阵积。
dot(a, b) - 此函数将两个 numpy 数组作为输入变量,并返回两个数组的点积。
zeros((n, m)) - 此函数将形状和类型作为输入变量,并返回给定形状和类型的矩阵,并用零初始化。
process_time() - 此函数返回当前进程的系统和用户 CPU 时间之和的值(以秒为单位)。它不包括睡眠期间经过的时间
结论
在本文中,我们学习了 Python 中的向量化。
广告