python数据分析
基本概念
1、数
在Python中有4种类型的数——整数、长整数、浮点数和复数。一般我们默认只使用整数—int;浮点数—float两种。
可以用type(object)来检测一个数是什么类型的。
>>> type(4)
<class 'int'>
2、变量
变量就是我们想要的东西——它们的值可以变化,即你可以使用变量存储任何东西。变量只是你的计算机中存储信息的一部分内存。
在python中,变量不需要提前申明,只需要在用的时候直接给这个变量进行赋值就行。在赋值的时候支持多元赋值,比如:X,Y=3,4表示将3,4同时赋值给X,Y。
3、标识符
变量是标识符的例子。 标识符是用来标识某样东西的名字。在命名标识符的时候,你要遵循这些规则:
● 标识符的第一个字符必须是字母表中的字母(大写或小写)或者一个下划线(‘ _’)。
● 标识符名称的其他部分可以由字母(大写或小写)、下划线(‘ _ ’)或数字(0-9)组成。
● 标识符名称是对大小写敏感的。例如,myname和myName不是一个标识符。注意前者中的小写n和后者中的大写N。
● 有效标识符名称的例子有:i、__my_name、name_23和a1b2_c3。
● 无效标识符名称的例子有:2things、this is spaced out和my-name。
4、字符串(str)
字符串是由零个或多个字符组成的有限串行。下面告诉你如何在Python中使用字符串。
● 使用单引号(')
你可以用单引号指示字符串,就如同'Quote me on this'这样。所有的空白,即空格和制表符都照原样保留。
● 使用双引号(")
在双引号中的字符串与单引号中的字符串的使用完全相同,且在双引号中使用单引号时,单引号不表示字符串的意思,会被当做字符串内容的一部分输出。例如:
● 使用三引号('''或''')
利用三引号,你可以指示一个多行的字符串。在三引号中自由的使用单引号和双引号会被当成字符串内容的一部分一起输出。例如:
● 转义符(\)
(1)可以通过用\'来指示单引号本身,而不是字符串的开始。例如:
(2)可以用转义符\\来指示反斜杠本身。
(3)可以在一个字符串的行末的单独加一个反斜杠表示字符串在下一行继续,而不是开始一个新的行。例如:
● 字符串是不可变的,一旦你创造了一个字符串,你就不能再改变它了。
● 字符串的简单操作
(1)两字符串直接相加:
(2)字符串可以赋值给变量:
(3)字符串复制:
(4)字符串的长度-len:
(5)字符串索引:
(6) 字符大小写的转换:
对于英文,有时候要用到大小写转换。在python中有下面一堆内建函数,用来实现各种类型的大小写转化:
S.upper() #使S中的字母大写
S.lower() #使S中的字母小写
S.capitalize() #使S中首字母大写
S.istitle() #判断S中单词首字母是否大写的,且其它为小写,
S.isupper() #判断S中的字母是否全是大写
S.islower() #判断S中的字母是否全是小写
(7)去掉字符串两头的空格
S.strip() 去掉字符串的左右空格
S.lstrip() 去掉字符串的左边空格
S.rstrip() 去掉字符串的右边空格
5、数据类型
变量可以处理不同类型的值,称为数据类型。基本的类型是数和字符串。
6、对象
广义上 上讲在Python程序中用到的任何东西都称为对象 。
7、输出
输出,print用于打印输出时,其后跟变量&字符串,print+字符串时,字符串需要用引号包含,print+变量时不需要引号。
在打印输出时有时还会用到一种叫做占位符的对象(占位符就是先占住一个固定的位置,等着你再往里面添加内容的符号。),通过这些占位符来说明那个位置应该填写什么类型的东西,常用的两个占位符:%d——表示那个位置是整数,%s——表示那个位置应该是字符串。下面看一个具体实例:
在上面例子中,%d表示占位符,就是说那个位置应该放一个整数。在第二个%后面,跟着的就是那个位置应该放的东西。
8、缩进
空白在Python中是重要的。行首的空白是重要的。它称为缩进。在逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组。这意味着同一层次的语句必须有相同的缩进。每一组这样的语句称为一个块。
如何缩进,不要混合使用制表符和空格来缩进,虽python对缩进没有明确的要求,但是一般默认每个缩进层次使用 单个制表符或两个或四个空格 。
数据结构
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。在python中主要包括列表、元组、字典、序列四种。
1、列表(list)
列表是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目。列表中的项目应该包括在方括号中,而且列表是可变的数据类型,一旦你创建了一个列表,你可以添加、删除或是搜索列表中的项目。在方括号中的数据可以是int型,也可以是str型。
● 列表的操作:
(1)索引:
可以对列表中的元素进行索引,与字符串的索引不同的是,字符串索引是按字符来的,而列表是对元素进行的。
(2)追加元素:
使用list.append(x)将元素x追加到list尾部。
(3)list长度测量:
使用len()得出list中元素的个数。
(4)合并list:
使用a.extend(b)将列表b追加到列表a中。
(5)列表中某个元素的个数:
使用list.count(a)得出list列表中a的个数。
(6)元素在列表中的位置:
使用list.index(a)得出元素a在列表中的位置。
(7)向list中插入一个元素:
使用list.insert(i,x)表示向list列表中的第i个位置插入元素x。
(8)删除list中的元素:
使用list.remove(x)删除元素列表list中的元素x.
(9)对元素进行排序:
使用list.sort()或sorted(list)可以对列表内的元素进行排序。
list.sort()和sorted(list)的区别在于前者修改了原list,而后者没有修改原list。
2、元组(tuple)
元组和列表十分类似,只不过元组和字符串一样是 不可变的 即你不能修改元组。元组通过圆括号中用逗号分割的项目定义。元组通常用在使语句或用户定义的函数能够安全地采用一组值的时候,即被使用的元组的值不会改变。
3、字典(dict)
字典类似于你通过联系人名字查找地址和联系人详细情况的地址簿,即,我们把键(名字)和值(详细情况)联系在一起。注意,键必须是唯一的,就像如果有两个人恰巧同名的话,你无法找到正确的信息。
键值对在字典中以这样的方式标记:d = 。注意它们的键/值对用冒号分割,而各个对用逗号分割,所有这些都包括在花括号中。
● 创建dict的方法:
(1)方法一
(2)方法二
(3)方法三
● 访问dict内的值:
(1)因为键值时唯一确定的,所以通过查找键值来查找对应值。
(2)用d.keys()方法得到dict的所有键,结果是list。
(3)用d.values()方法得到dict的所有键,结果是list。
(4)用d.items()方法得到一组一组的键值对,结果是list。
4、序列
列表、元组和字符串都是序列,序列的两个主要特点是索引操作符和切片操作符。索引操作符让我们可以从序列中抓取一个特定项目。切片操作符让我们能够获取序列的一个切片,即一部分序列。
● 索引操作符是序列名后跟一个方括号,方括号中有一个用来表示序列中指定位置的数字。Python从0开始计数。因此,shoplist[0]抓取第一个项目shoplist[3]抓取shoplist序列中的第四个元素。
索引同样可以是负数,在那样的情况下,位置是从序列尾开始计算的。因此,shoplist[-1]表示序列的最后一个元素而shoplist[-2]抓取序列的倒数第二个项目。
● 切片操作符是序列名后跟一个方括号,方括号中有一对可选的数字,并用冒号分割。注意数是可选的,而冒号是必须的。
切片操作符中的第一个数(冒号之前)表示切片开始的位置,第二个数(冒号之后)表示切片到哪里结束。如果不指定第一个数,Python就从序列首开始。如果没有指定第二个数,则Python会停止在序列尾。返回的序列从开始位置开始,刚好在结束位置之前结束。即开始位置是包含在序列切片中的,而结束位置被排斥在切片外。
例如:shoplist[1:3]返回从位置1开始,包括位置2,但是停止在位置3的一个序列切片;shoplist[:]返回整个序列的拷贝。
也可以用负数做切片。负数用在从序列尾开始计算的位置。例如,shoplist[:-1]会返回除了最后一个项目外包含所有项目的序列切片。
运算符
1、算数运算符
2、比较运算符
3、赋值运算符
4、逻辑运算符
5、运算符优先顺序
循环语句
1、if语句
if语句用来检验一个条件,如果条件为真,我们运行一块语句(称为 if-块),否则我们处理另外一块语句(称为 else-块)。else 从句是可选的。
2、while语句
只要在一个条件为真的情况下,while语句允许你重复执行一块语句。while语句是所谓循环语句的一个例子。while语句有一个可选的else从句。当while循环条件变为False的时候,else块才被执行。
3、for循环语句
for..in..是另外一个循环语句,它在一序列的对象上递归即逐一使用队列中的每个项目。
4、break语句
break语句是用来终止循环语句的,即哪怕循环条件没有称为False或序列还没有被完全递归,也停止执行循环语句。
如果你从for或while循环中终止,任何对应的循环else块将不执行。
5、continue语句
continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
函数
1、定义
函数是重用的程序段。它们允许你给一块语句一个名称,然后你可以在你的程序的任何地方使用这个名称任意多次地运行这个语句块。这被称为调用函数。我们已经使用了许多内建的函数,比如len、range、round、pow、input等。
函数通过def关键字定义。def关键字后跟一个函数的标识符名称,然后跟一对圆括号。圆括号之中可以包括一些变量名(可以为空,但是圆括号不可少),该行以冒号结尾。接下来是一块语句,它们是函数体,注意缩进。
2、函数参数:
参数在函数定义的圆括号内指定,可以有一个,也可以有多个,当有多个的时候用逗号分隔。函数中的参数名称为形参,而提供给函数调用的值称为实参。
3、变量的作用区域:
根据变量的作用范围分为局部变量和全局变量两种。变量的作用域是他们被定义的块,从他们的名称被定义的那点开始起作用。
4、默认参数值:
对于一些函数,如果不想为这些函数的参数提供值的话,这些参数就使用默认值。这个功能通过在函数定义的形参名后加上赋值运算符(=)和默认值,从而给形参指定默认参数值。
5、return语句:
Return语句用来从一个函数返回函数体运算结果,即跳出该函数。
模块
1、定义
函数是在一个程序中可以重复多次使用的代码,而模块是在其他程序中可以重复使用的代码(程序)。
2、引用模块方法:
● import module_name
● form module1 import module2