Python一些代码记录

2016/9/12 posted in  Python  

这个坑完全是为了记录Python数据处理中一些需要记一下的代码,随时补充。仔细想想,我的Python写的真是丑啊。

#把两个长度一样的数组x,y组合成一个(x,y)的数组
z=zip(x,y)
#map和reduce真的很有用的两个函数
isTradeble=map(lambda a,b:np.logical_and(a,b),
                  isTradeble==1,
                  [i>0 and np.isnan(i)==False for i in pb])
                  
condition=reduce(lambda a,b:np.logical_and(a,b),
                    [np.isnan(cps)==False,
                    np.isnan(openEx[-1])==False,
                    np.isnan(stockListIndex)==0])
#axis=0就是纵向切片,axis=1是横向切片
MA3=np.sum(closePrice[-3:],axis=0)/3

#axis=0是竖着拼接,axis=1是横着拼接
SWIndexQuote=np.append(tmp1,tmp2,axis=1)

#rolling()是一个很有用的函数,意思就是滚动出来一个窗口的意思
MA3=cum_close.rolling(3).mean()
#method有很多种方法,ffill的意思是向前填充,也就是遇到空置,填充它前面的值
pd.replace(np.nan,method='ffill',inplace=True)
#numpy中切片操作传出来的是view而不是副本,需要副本的话要用copy()
>>> a=np.array([1,2,3,4])
>>> b=a[:2]
>>> a
array([1, 2, 3, 4])
>>> b
array([1, 2])
>>> b[0]=3
>>> b
array([3, 2])
>>> a
array([3, 2, 3, 4])
#and这个操作符虽然可以用来做True和False的比较,但是用的时候需要小心
>>> 'a' and 'b'
'b'
#也就是说如果两个一样,返回的是同一个值;
#如果不一样,返回的是最右边第一个不一样的值(其实就是最右边的值啦)
#所以当使用list做and操作的时候要格外小心
>>> [False,False] and [True,True]
[True, True]
#对于np.array可以直接用&来操作
>>> np.array([False,False])&np.array([True,True])
array([False, False], dtype=bool)
#所以对于矩阵,可以直接用reduce做下来。