向量化编程

在机器学习中,尽量使用内置函数,尽量避免显示for循环,向量化编程可以程序运行速度显著加快。

import time
a = np.random.rand(1000000)
b = np.random.rand(1000000)
tic = time.time()
c = np.dot(a,b)
toc = time.time()
print "Vectorized version:" + str(1000*(toc-tic)) +"ms"

c = 0
tic = time.time()
for i in range(1000000):
    c == a[i]*b[i]
toc = time.time()
print "For loop:"+ str(1000*(toc-tic)) +"ms"

Vectorized version:3.00002098083ms
For loop:807.000160217ms

import time

A = np.random.rand(10000,100)
b = np.random.rand(100,1)

c = np.zeros((10000,1))
tic = time.time()
for i in range(10000):
    for j in range(100):
        c[i] += A[i][j]*b[j]
toc = time.time()
print "For loop:"+ str(1000*(toc-tic)) +"ms"

tic = time.time()
c = np.dot(A,b)
toc = time.time()
print "Vectorized version:" + str(1000*(toc-tic)) +"ms"

For loop:414.999961853ms
Vectorized version:0.999927520752ms

import time

v = np.random.rand(1000000,1)
c = np.zeros((1000000,1))
tic = time.time()
for i in range(1000000):
    c[i] = math.exp(v[i])
toc = time.time()
print "For loop:"+ str(1000*(toc-tic)) +"ms"

tic = time.time()
c = np.exp(v)
toc = time.time()
print "Vectorized version:" + str(1000*(toc-tic)) +"ms"

For loop:1101.00007057ms
Vectorized version:29.9999713898ms

参考 吴恩达老师的课程:神经网络与深度学习

### 回答1: 《Matlab向量化编程精讲》是一本介绍如何使用Matlab进行向量化编程的专业教材。在这本书中,作者详细解释了向量化编程的概念、原理和优势,并通过大量的实例和代码来演示如何在Matlab中实现向量化编程向量化编程是一种利用Matlab提供的向量和矩阵操作来高效处理数据的方法。相比于传统的循环迭代方式,向量化编程能够更快速、更简洁地实现复杂的数据处理和分析任务。通过将数据操作转化为矩阵和向量运算,可以大幅提升代码运行效率,减少内存消耗,并使代码更易于理解和维护。 本书首先介绍了向量和矩阵的基本操作方法,包括创建和初始化、索引和切片、运算和聚合等。接着,详细讲解了如何应用这些操作来解决不同类型的问题,如线性代数、统计学、信号处理等。通过实例的演示,读者可以深入理解向量化编程的思维方式,并学会将其应用到各种实际问题中。 此外,本书还介绍了一些高级的向量化编程技巧,如使用逻辑数组实现条件筛选、使用函数句柄和匿名函数实现自定义运算等。这些技巧能够进一步提升代码的效率和灵活性,使Matlab成为一个强大的数据处理工具。 总之,《Matlab向量化编程精讲》是一本帮助读者掌握Matlab向量化编程技巧的实用教材,通过系统性的讲解和实例演示,读者可以深入了解向量化编程的优势和应用,提升自己在数据处理和分析领域的能力和效率。 ### 回答2: 《matlab向量化编程精讲pdf》是一本针对matlab向量化编程技术进行详细讲解的电子书。向量化编程是一种高效的编程技术,可以大大提高matlab代码的运行速度和性能。 在传统的循环编程中,需要逐个处理数据,而向量化编程则是利用矩阵和数组的运算特性,将循环操作转化为矩阵运算。这种方式可以极大地提高代码的运行效率,减少运算时间和内存占用。《matlab向量化编程精讲pdf》中详细介绍了向量化编程的原理、应用场景和技巧。 这本电子书包括了以下内容: 1. 向量化编程的基本原理和概念:介绍了向量化编程的基本概念,如矩阵运算、广播机制等,帮助读者理解向量化编程的原理和优势。 2. 向量化编程的基本技巧:介绍了如何使用matlab中的向量和矩阵来替代循环操作,实现向量化编程。同时,还提供了一些实际案例,让读者能够更好地理解和应用这些技巧。 3. 向量化编程的应用和实践:从数值计算、数据处理、图像处理等不同领域,介绍了向量化编程在实际应用中的具体方法和技巧。同时,还提供了一些实例代码,帮助读者更好地理解和应用向量化编程技术。 4. 向量化编程的性能优化:讲解了如何进一步优化向量化编程的性能,包括减少内存占用、减少不必要的计算等方面的技巧和方法。 通过《matlab向量化编程精讲pdf》,读者可以全面了解matlab向量化编程的原理和实践技巧,并且能够应用向量化编程来提高自己的matlab代码的运行效率和性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值