美文网首页
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