欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    Python 的更多的方法.docx

    • 资源ID:14446834       资源大小:21.73KB        全文页数:13页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Python 的更多的方法.docx

    1、Python 的更多的方法Python 的列表数据类型包含更多的方法list.append(x) 把一个元素添加到列表的结尾。list.extend(L) 将一个给定列表中的所有元素都添加到另一个列表中。list.insert(i, x) 在指定位置插入一个元素。第一个参数是准备插入到其前面的那个元素的索引,例如 a.insert(0, x) 会插入到整个列表之前,而 a.insert(len(a), x) 相当于 a.append(x)。list.remove(x) 删除列表中值为 x 的第一个元素。如果没有这样的元素,就会返回一个错误。list.pop(i) 从列表的指定位置删除元素,并将

    2、其返回。如果没有指定索引,a.pop() 返回最后一个元素。元素随即从链表中被删除。(方法中 i 两边的方括号表示这个参数是可选的,而不是要求你输入一对方括号,这个经常会在 Python 库参考手册中遇到这样的标记。)list.index(x) 返回列表中第一个值为 x 的元素的索引。如果没有匹配的元素就会返回一个错误。list.count(x) 返回 x 在链表中出现的次数。list.sort(cmp=None, key=None, reverse=False) 对列表中的元素进行排序(参数可以用来自定义排序方法,参考 sorted() 的更详细的解释)。list.reverse() 就地倒

    3、排链表中的元素del listi 有个方法可以从列表中按给定的索引而不是值来删除一个子项:del 语句。它不同于有返回值的 pop() 方法。语句 del 还可以从列表中删除切片或清空整个列表(我们以前介绍过一个方法是将空列表赋值给列表的切片)。dict() 构造函数可以直接从 key-value 对中创建字典:dict(sape, 4139), (guido, 4127), (jack, 4098)dict.fromkeys(a,b,0)dict(zip(a,b,c,1,2,3)k:v for (k,v) in zip(a,b,c,1,2,3)x: x*2 for x in (2, 4, 6

    4、)D = dict(a=1,b=2,c=3)c:c*4 for c in JoinQuantc.lower():c*4+! for c in JoinQuant元组任意无符号的对象,以逗号隔开,默认为元组(print abc, -4.24e93, 18+6.6j, xyzx, y = 1, 2;)元组数据类型包含更多的方法:tup.index(x, start, stop) 返回元组中start到stop索引中第一个值为 x 的元素在整个列表中的索引。如果没有匹配的元素就会返回一个错误。tup.count(x) 返回 x 在元组中出现的次数。cmp(tuple1, tuple2) 比较元组中两

    5、个元素。len(tuple) 计算元组元素个数。max(tuple) 返回元组中元素最大值。min(tuple) 返回元组中元素最小值。tuple(seq) 将列表转换为元组。元组不提供字符串、列表和字典中的方法。如果相对元组排序,通常先得将它转换为列表并使其成为一个可变对象,才能获得使用排序方法,或使用sorted内置方法。集合集合(set)是一个无序不重复元素的集。基本功能包括关系运算和消除重复元素。比如支持 union(联合),intersection(交),difference(差)和 sysmmetric difference(对称差集)等数学关系运算。所有集合方法S.issubse

    6、t(t) 如果 s 是 t 的子集,则返回True,否则返回FalseS.issuperset(t) 如果 s 是 t 的超集,则返回True,否则返回FalseS.unoin(t) 返回一个新集合,该集合是s和t的并集,也可用s1|s2,但不能用s1+s2S.intersection(t)返回一个新集合,该集合是s和t的交集,,也可用s1&s2S.difference(t) 返回一个新集合,该集合是s的成员,但不是t的成员,,也可用s1-s2S.symmetric_difference(t)对称差分是集合的异或,返回一个新集合,该集合是s或t的成员,但不是s和t共有的成员,也可用s1s2S.

    7、copy()返回一个新集合,该集合是s的复制仅适合可变集合S.update(t) 用t中的元素修改s,即s现在包括s或t的成员S.intersection_update s中的成员是共同属于s和t的元素S.difference_update s中的成员是属于s但不包含在t中的元素S.symmetric_difference_update s中的成员更新为那些包含在s或t中,但不是s和t共有的元素S.add(obj) 在集合s中添加对象objS.remove(obj) 从集合s中删除对象obj,如果obj不是集合s中的元素将有错误S.discard(obj) 如果obj是集合s中的元素,从集合s

    8、中删除对象objS.pop() 删除集合s中的任意一个对象,并返回它S.clear() 删除集合s中的所有元素集合推导式语法:a = x for x in abracadabra if x not in abc#abc默认是集合Python提供了for循环和while循环(在Python中没有do.while循环),for循环一般比while计数器循环运行得更快break语句,在语句块执行过程中终止循环,并且跳出整个循环continue语句,在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。pass语句,是空语句,是为了保持程序结构的完整性。不做任何事情,一般用做占位语句。循环el

    9、se块,只有当循环正常离开时才会执行(也就是没有碰到break语句)If/While/for定义可变参数和定义 list 或 tuple 参数相比,仅仅在参数前面加了一个 * 号。在函数内部,参数 numbers 接收到的是一个 tuple,因此,函数代码完全不变。但是,调用该函数时,可以传入任意个参数,包括 0 个参数。#必选参数,默认参数,*表可变参数,*表关键字参数def func(a, b, c=0, *args, *kw): print a =, a, b =, b, c =, c, args =, args, kw =, kw 调用函数时如何传入可变参数和关键字参数的语法:可变参数

    10、既可以直接传入:func(1, 2, 3),又可以先组装list或tuple,再通过*args传入:func(*(1, 2, 3);关键字参数既可以直接传入:func(a=1, b=2),又可以先组装dict,再通过*kw传入:func(*a: 1, b: 2)。使用*args和*kw是Python的习惯写法,当然也可以用其他参数名,但最好使用习惯用法。Python查找名字的规则是LGB规则:大多数名字引用在三个作用域中查找:先局部(Local),次之全局(Global),再次之内置(Build-in)。python 使用 lambda 来创建匿名函数:lambda只是一个表达式,函数体比de

    11、f简单很多。lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。lambda函数拥有自己的名字空间,且不能访问自有参数列表之外或全局名字空间里的参数。虽然lambda函数看起来只能写一行,却不等同于C或C+的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。import timestart = time.clock()fib=lambda n,x=0,y=1:x if not n else fib(n-1,y,x+y)print fib(20)end = time.clock()print read: %f s % (end - st

    12、art)def fib(num): result=0,1 for i in range(num-2): result.append(result-2+result-1) return resultprint fib(15)斐波那契数列:斐波那契数列由十三世纪意大利数学家斐波那契发现。数列中的一系列数字常被人们称之为神奇数奇异数。具体数列为:0,1,1,2,3,5,8,13,21,34,55,89,144,233等,从该数列的第三项数字开始,每个数字等于前两个相邻数字之和。而斐波那契数列中相邻两项之商就接近黄金分割数0.618,与这一数字相关的0.191、0.382、0.5和0.809等数字就构

    13、成了股市中关于市场时间和空间计算的重要数字。在金融市场的分析方法中,斐波那契数字频频出现。例如,在波浪理论中,一轮牛市行情可以用1个上升浪来表示,也可以用5个低一个层次的小浪来表示,还可继续细分为21个或89个小浪;在空间分析体系中,反弹行情的高度通常是前方下降趋势幅度的0.382、0.5、0.618;回调行情通常是前方上升趋势的0.382、0.5和0.618。一、常见的几种迭代器迭代器在python中是以C语言的速度运行的,而while循环版本则是通过Python虚拟机运行Python字节码的。rangezip 可以让我们使用for循环来并行使用多个序列,zip会取得一个或多个序列为参数,然

    14、后返回元组的列表,将这些序列中的并排的元素配成对。enumerate 可以获得元素和元素的偏移值map map会对一个序列对象中的每一个元素应用被传入的函数,并且返回一个包含所有函数调用结果的一个列表。filter 基于某一测试函数过滤出一些元素reduce 对每对元素都应用函数并运行到最后结果Range: S = abcdefghijkfor i in range(0,len(S),2):print SiS = abcdefghijkfor c in S:2: print c Zip: L1 = 1,2,3,4L2 = 5,6,7,8for (x,y) in zip(L1,L2): prin

    15、t (x,y,x+y)#构造字典keys = a,b,cvals = 1,3,5D2 = for (k,v) in zip(keys,vals): D2k=vEnumerate: seasons = Spring, Summer, Fall, Winterdict(enumerate(seasons, start=3)Out1: 3: Spring, 4: Summer, 5: Fall, 6: Winter Map: map(lambda x: x+3),1,2,3,4) Out2: 4, 5, 6, 7 Reduce: reduce(lambda x,y:x+y),1,2,3,4) Out

    16、3: 10 import operator,functools functools.reduce(operator.add,2,4,6) Out4: 12列表推导式:列表推导式由包含一个表达式的括号组成,表达式后面跟随一个 for 子句,之后可以有零或多个 for 或 if 子句。结果是一个列表,由表达式依据其后面的 for 和 if 子句上下文计算而来的结果构成。Eg: (x, y) for x in 1,2,3 for y in 3,1,4 if x != y Out: (1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)matrix

    17、 = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 list(zip(*matrix)Out: 1, 5, 9, 2, 6, 10, 3, 7, 11, 4, 8, 12Numpy库数组的一些属性:a.ndim # 查看行数 a.shape # 查看数组的维数,返回(n,m), 其中 n 为行数,m 为列数。 a.dtype # 查看元素的类型,比如 numpy.int32、numpy.float64Numpy的特殊数组主要有以下几种:zeros数组:全零数组,元素全为0; np.zeros(2,3)ones数组:全1数组,元素全为1; np.ones(3,4)e

    18、mpty数组:空数组,元素全近似为0; np.empty(3,2)序列数组:arange函数:他与 Python 的 range 函数相似,但他属于Numpy 库,其参数依次为:开始值、结束值、步长。Eg: In 22: np.arange(1,20,5)Out22: array( 1, 6, 11, 16)linspace 函数创建等差序列数组,其参数依次为:开始值、结束值、元素数量。Eg: In 23: np.linspace(0,2,9)Out23: array( 0. , 0.25, 0.5 , 0.75, 1. , 1.25, 1.5 , 1.75, 2. )#bi,j表示什么?b

    19、= np.ones(2,3)b1,2 = 9矩阵;矩阵的常用数学运算有转置(A.T)、乘法(A * B)、求逆(A.I)、解线性方程(solve(A, B))等。PandasSeries:一维数组,与Numpy中的一维array类似。二者与Python基本的数据结构List也很相近,其区别是:List中的元素可以是不同的数据类型,而Array和Series中则只允许存储相同的数据类型,这样可以更有效的使用内存,提高运算效率。DataFrame:二维的表格型数据结构。很多功能与R中的data.frame类似。可以将DataFrame理解为Series的容器。以下的内容主要以DataFrame为主

    20、。Panel :三维的数组,可以理解为DataFrame的容器。DataFrame: eg: dates = pd.date_range(20130101,periods=6)Out6:DatetimeIndex(2013-01-01, 2013-01-02, 2013-01-03, 2013-01-04, 2013-01-05,2013-01-06,dtype=datetime64ns, freq=D, tz=None) #df = pd.DataFrame(np.random.randn(6,4),index=dates,columns=list(ABCD)查看前几条数据:df.head(

    21、);查看后几条数据:df.tail()查看 DataFrame 的值: df.values查看 DataFrame 的索引: df.index查看 DataFrame 的列名: df.columns使用 describe() 函数对于数据的快速统计汇总:df.describe()按列对 DataFrame 进行排序: df.sort(columns=open)选择数据:通过下标选取数据: dfopen df.open (返回一个Series) dfopen,close(选取多列) dfa:b(起始的索引名称到结束索引名称选取数据,含b列) df0:3(从0到2,不含3)df2016-07-05

    22、:2016-07-08(返回一个df)使用标签选取数据:df.loc行标签,列标签df.loca:b #选取 ab 两行数据d f.loc:,open #选取 open 列的数据df.loc 的第一个参数是行标签,第二个参数为列标签(可选参数,默认为所有列标签), 两个参数既可以是列表也可以是单个字符,如果两个参数都为列表则返回的是 DataFrame,否则,则为 Series。PS:loc为location的缩写。使用位置选取数据:df.iloc行位置,列位置df.iloc1,1 #选取第二行,第二列的值,返回的为单个值df.iloc0,2,: #选取第一行及第三行的数据df.iloc0:2

    23、,: #选取第一行到第三行(不包含)的数据df.iloc:,1 #选取所有记录的第二列的值,返回的为一个Seriesdf.iloc1,: #选取第一行数据,返回的为一个SeriesPS:iloc 则为 integer & location 的缩写更广义的切片方式是使用.ix,它自动根据给到的索引类型判断是使用位置还是标签进行切片。通过逻辑指针进行数据切片:df逻辑条件dfdf.one = 2 #单个逻辑条件df(df.one =1 ) & (df.one 3) #多个逻辑条件组合过滤出指定条件的数据:dfdfhigh.isin(0.00,9.00)# 选取 high 列中数为 0 和 9 的数

    24、。pandas库之数据处理与规整缺失数据处理:去掉包含缺失值的行:df.dropna()对缺失值进行填充:df.fillna(value=0)判断数据是否为nan,并进行布尔填充:pd.isnull(df)函数的应用和映射:df.mean() #列计算平均值df.mean(1) #行计算平均值df.sort_index() #行名字排序df.mean(axis = 1,skipna = False) # skipna参数默认是 True 表示排除缺失值df.sort_index() #行名字排序df.sort_index(axis=1) #列名字排序df.sort_index(axis=1,a

    25、scending = False) # 数据默认是按升序排序的,也可以降序排序常用的方法如上所介绍们,还要其他许多,可自行学习,下面罗列了一些,可供参考:count 非na值的数量describe 针对Series或个DataFrame列计算汇总统计min、max 计算最小值和最大值argmin、argmax 计算能够获取到最大值和最小值得索引位置(整数)idxmin、idxmax 计算能够获取到最大值和最小值得索引值quantile 计算样本的分位数(0到1)sum 值的总和mean 值得平均数median 值得算术中位数(50%分位数)mad 根据平均值计算平均绝对离差var 样本值的方差

    26、std 样本值的标准差skew 样本值得偏度(三阶矩)kurt 样本值得峰度(四阶矩)cumsum 样本值得累计和cummin,cummax 样本值得累计最大值和累计最小值cumprod 样本值得累计积diff 计算一阶差分(对时间序列很有用)pct_change 计算百分数变化数据规整:concat 可以沿一条轴将多个对象堆叠到一起。append 将一行连接到一个DataFrame上duplicated 移除重复数据Concat: pd.concat(df1,df2,axis=0) #将df1和df2纵向拼接pd.concat(df1,df2,axis=1) #将df1和df2横向拼接(in

    27、dex对不上的会用 NaN 填充)Append: df1.append(s, ignore_index=False) # s为Series,ignore_index=False表示 索引不变,若为True,则索引变为rangeDuplicated: z.duplicated() #查看重复数据z.drop_duplicates() #删除重复数据全局变量第一种:是在一个单独的模块中定义好,然后在需要使用的全局模块中将定义的全局变量模块导入。SOLR_URL=http:/solr.orgdef tt(): global SOLR_URL SOLR_URL=SOLR_URL+#aaif _name_=_main_: tt() print SOLR_URL#输出:http:/solr.org#aa第二种:直接在当前的模块中定义好,然后直接在本模块中通过global声明,然后使用。global_list.pyGLOBAL_A=helloGLOBAL_B=worldtest.py复制代码import global_listdef tt(): print global_list.GLOBAL_Aif _name_=_main_: tt()#输出:hello


    注意事项

    本文(Python 的更多的方法.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开