美文网首页
03.向量化计算

03.向量化计算

作者: 李慕玄 | 来源:发表于2018-07-01 11:35 被阅读0次

    定义:是一种特殊的并行计算的方式,可以同一时间执行多次操作,通常是对不同的数据执行同一个或同一批指令。主要用于pandas的Series系列和DataFrame数据框。

    1.生成等差数组

    numpy.arange(start, end, step),取值前闭后开。

    import numpy
    r = numpy.arange(0.1, 1, 0.1)
    Out[180]: array([ 0.1,  0.2,  0.3,  0.4,  0.5,  
    0.6,  0.7,  0.8,  0.9])
    

    2.四则计算与函数计算

    相同位置的数据进行四则或函数计算,返回的结果保存在相同位置。

    #numpy的乘方函数power
    numpy.power(r, 5)  #r的五次方
    Out[182]: 
    array([  1.00000000e-05,   3.20000000e-04,   2.43000000e-03,
             1.02400000e-02,   3.12500000e-02,   7.77600000e-02,
             1.68070000e-01,   3.27680000e-01,   5.90490000e-01])
    

    3.比较运算

    r > 0.3
    Out[183]: array([False, False,  True,  True,  True,  
    True,  True,  True,  True], dtype=bool)
    
    #结合过滤一起使用,如果是True就保留,如果是False就过滤
    r[r>0.3]
    Out[184]: array([ 0.3,  0.4,  0.5,  0.6,  0.7,  0.8,  0.9])
    

    4.矩阵运算

    numpy.dot(r, r.T)
    Out[185]: 2.8500000000000005
    

    5.数据框运算

    numpy.random.randn生成随机数的数据框

    from pandas import DataFrame
    df = DataFrame({
        'column1': numpy.random.randn(5),
        'column2': numpy.random.randn(5),
        'column3': numpy.random.randn(5)    
    })
    Out[187]: 
        column1   column2   column3
    0 -0.611932 -1.690942  0.092462
    1 -0.765934  0.794254  1.123755
    2 -1.591180  0.340763 -0.232495
    3  1.463467 -0.588498 -0.208558
    4 -0.338739  0.907178 -1.146147
    
    #apply()调用数据框的每一列传递给min函数,由其选出每一列的最小值。
    #二维数组有两个轴:第0轴沿行垂直往下,第1轴沿列水平延伸。
    df.apply(min, axis=0)  #axis=0为默认值
    Out[188]: 
    column1   -1.591180
    column2   -1.690942
    column3   -1.146147
    dtype: float64
    
    df.apply(min, axis=1)
    Out[189]: 
    0   -1.690942
    1   -0.765934
    2   -1.591180
    3   -0.588498
    4   -1.146147
    dtype: float64
    
    #判断每个列,值是否都大于0
    df.apply(
        lambda x: numpy.all(x>0),
        axis=1    
    )
    Out[191]: 
    0    False
    1    False
    2    False
    3    False
    4    False
    dtype: bool
    
    #结合过滤
    df[df.apply(
        lambda x: numpy.all(x>0),
        axis=1        
    )]
    Out[192]: 
    Empty DataFrame
    Columns: [column1, column2, column3]
    Index: []
    

    相关文章

      网友评论

          本文标题:03.向量化计算

          本文链接:https://www.haomeiwen.com/subject/ywdcuftx.html