Python的numpy数组的运算

文章介绍了numpy数组的向量化操作如何提高代码效率,对比了向量化与纯Python循环的运行时间差异。同时,阐述了numpy的广播机制,允许不同形状的数组进行运算。最后提到了ufunc通用函数,它们对数组元素进行逐个运算,提供高效的计算性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     1.numpy数组的向量化操作

        numpy数组可以使用简单的数组表达式进行多种数据操作任务,而无需使用大量循环语句。这种使用数组表达式替代循环的操作方法,称为向量化。通过向量化,可以一次性地在一个复杂对象上操作,或者将函数应用于一个复杂对象,避免了在对象的单个元素上使用复杂循环语句完成操作任务,达到代码更紧凑,执行速度更快的代码实现效果。

      numpy中关于ndarry对象的循环操作是通过高效优化的c代码实现,执行速度远快于纯python。通常,向量化的数组操作比纯python的等价实现在速度上快1~2个数量级。这为实现高效的数值计算奠定了基础。

import numpy as np
import time

a = np.arange(10000, dtype = float)
b = np.arange(10000, 0, -1, dtype = float)

begin = time.time()   #未使用向量化
results = []
for i,j in zip(a,b)
    results.append(i*j)
end=time.time()
print('纯python运行时间:', begin-end)

begin = time.time()  #使用向量化
results = a*b
end = time.time()
print('向量化运行时间:', begin-end)


#纯python运行时间:0.02645111083984375
#向量化运行时间:0.0027115345001220703

        运行一下,可以看出,与纯python的循环语句实现相比,使用numpy的数组向量化操作完成同样的功能,运算效率提高了将近10倍。

2.numpy广播机制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值