numpy通用函数(ufunc)

       在Numpy中存在着通用函数和聚合去对数据进行处理,numpy通过向量进行对数据数组的计算,而这些向量主要依靠一些通用函数,而聚合是numpy对面对大量数据时获取描述性统计信息的方法。通常在通用函数(ufunc)中利用向量实现numpy数据处理速度的提高。

import numpy as np
import math
import time

x=[i*0.001 for i in np.arange(1000000)]
#在python 3.8中已经更新移除了time.clock(),可以改用time.perf_counter()或者time.process_time()
start=time.perf_counter()     
for i,t in enumerate(x):
    x[i]=math.sin(t)
print("math.sin:",time.perf_counter()-start)

x=[i*0.001 for i in np.arange(1000000)]
x=np.array(x)
start=time.perf_counter()
np.sin(x)
print("numpy.sin:",time.perf_counter()-start)

'''
math.sin: 0.5314168000004429
numpy.sin: 0.0107958000007784

'''
import numpy as np
import time

x1=np.random.rand(1000000)
x2=np.random.rand(1000000)

#使用循环计算向量点积
tic=time.process_time()
dot=0
for i in range(len(x1)):
    dot+=x1[i]*x2[i]
toc=time.process_time()
print("dot="+str(dot)+"\nfor loop——Computation time="+str(1000*(toc-tic))+"ms")

#使用numpy函数求向量点积
tic=time.process_time()
dot=0
dot=np.dot(x1,x2)
toc=time.process_time()
print("dot="+str(dot)+"\nverctor version——Computation time="+str(1000*(toc-tic))+"ms")

'''
dot=250169.7881271574
for loop——Computation time=796.875ms
dot=250169.7881271633
verctor version——Computation time=0.0ms

'''

可以看出使用for循环计算耗时明显高于numpy通用函数(ufunc)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tiny_PIkid

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值