numpy数组矢量化

NumPy数组可以使用数组表达式来处理数据。用数组表达式打胎循环的做法,通常称为矢量化。一般来说,矢量化数组运算要比等价的Python方式快很多。假设我们想要在一组值上计算函数sqrt(x^2 + y^2)

In    [1] :  import numpy as np
               points = np.arange(-3,3,0.01)    
               xs,ys = np.meshgrid(points,points)
               ys

Out[1]:array([[-3.  , -3.  , -3.  , ..., -3.  , -3.  , -3.  ],
       [-2.99, -2.99, -2.99, ..., -2.99, -2.99, -2.99],
       [-2.98, -2.98, -2.98, ..., -2.98, -2.98, -2.98],
       ..., 
       [ 2.97,  2.97,  2.97, ...,  2.97,  2.97,  2.97],
       [ 2.98,  2.98,  2.98, ...,  2.98,  2.98,  2.98],
       [ 2.99,  2.99,  2.99, ...,  2.99,  2.99,  2.99]])
对该数组进行求值,可以把这两个数组当做两个浮点数进行运算:
  
  
import matplotlib.pyplot as plt
z = np.sqrt(xs**2 + ys**2)
z
Out[10]:
array([[ 4.24264069,  4.23557552,  4.2285222 , ...,  4.22148078,
         4.2285222 ,  4.23557552],
       [ 4.23557552,  4.22849855,  4.22143341, ...,  4.21438014,
         4.22143341,  4.22849855],
       [ 4.2285222 ,  4.22143341,  4.21435642, ...,  4.20729129,
         4.21435642,  4.22143341],
       ..., 
       [ 4.22148078,  4.21438014,  4.20729129, ...,  4.20021428,
         4.20729129,  4.21438014],
       [ 4.2285222 ,  4.22143341,  4.21435642, ...,  4.20729129,
         4.21435642,  4.22143341],
       [ 4.23557552,  4.22849855,  4.22143341, ...,  4.21438014,
         4.22143341,  4.22849855]])

 
          
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值