python特点
- 简单、直观、强大
- 开源,以便任何人做出贡献
- 代码容易理解
- 适用于短期开发的日常任务
- 可扩展性、丰富的库、面向对象、高级语言、可移植性等特点
缺点
- 强制缩进
- 构架选择太多
- 性能低(低于C)
Anacoda python 是python科学计算包的合集,包含了常用科学计算、数据分析
1 常用数据分析包
- numpy:科学计算,提供数组、矩阵 ,python本身无数组,只有列表
- scipy:统计推断、统计检验等
- pandas:基于numpy的数据读取、数据整合、数据清洗整理等
- statsmodel:统计检验、统计建模等
- scikit-learn:数据变换、机器学习、交叉验证等
- matplotlib:绘图
- seaborn:高级统计制图包
安装包:CMD->conda install 包名 ;或CMD->pip install 包名
2 Python基本数据类型
string 字符串 number 数值类型:整数(integer)和浮点数(float) bool 布尔类型:True/False time/datetime 日期时间 None 空值 complex 复数
2.1 字符串
字符串可用 ’ " ‘’’ 引用 字符串本身内部还含有单引号(双引号),外部使用双引号(单引号) 字符段使用三引号, 字符串内部含有单引号和双引号,加入转义字符 \ 原样输出
‘in’
s='python'
print('py' in s)
切片
print(s[2])
print(s[1:4])
‘+’ 连接 、 ’ strip( ) ’ 去除
word1='"hello"'
word1='"world"'
sentence=word1.strip('"')+' '+word2.strip('"')+'!'
print(sentence)
‘%s’ 占位
print('The first world is %s,and the second word is %s',%(word1,word2))
2.2 数值类型:整数、浮点数
Python3中对于整数和浮点数的运算进行区分,在混合运算时,python会把整数转化为浮点数
** 次方
7**3
// 取整
9//2
9.0//2.0
导入math模块进行更多运算
import math
print(math.log(math.e))
2.3 布尔值
逻辑运算 True=1 False=0 and 与 or 或 not 非,取反
2.4 日期时间
time、datetime模块用于格式化时间和日期
获取日期,解析字符串
import time
now=time.strptime('2021-08-25','%Y-%m-%d')
print(now)
获取时间差值
import datetime
someday=datetime.date(1999,2,10)
anotherday=datetime.date(1999,2,15)
deltaday=another-someday
deltaday.days
查看类型 type()
2.5类型转换
str() 转为字符串 float() 转为浮点型 int() 转为整型
2.6 表达式
表达式=运算符+操作数,进行数据处理 运算符:算术、赋值、比较、逻辑、成员 操作数:常量、变量
成员运算符:测试成员是否在另外一个字符串、列表或元组中: in、not in,返回布尔值
3 Python数据基本结构
列表list 元组/序列tuple 集合set 字典dict
- 列表list[ ]
有序集合,内部元素可不同类型 正序索引从0开始,倒序索引从1开始
print(len(s))
print(s[1])
print(s[-1])
print(s[::2])
修改元素
s[3]="修改后的元素"
print(s[3])
插入元素 append( ) 每次在列表末尾填入一个元素 extend( ) 在列表末尾加入另一个列表 insert( ) 在指定位置插入元素或列表
s.append('要插入元素')
s.extend(['要插入元素1','要插入元素2','...'])
s.insert(1,list)
删除元素 pop( ) 可指定索引,删除某个位置的元素,不指定时默认删除末尾元素,返回被指定位置并删除该位置的元素 remove( ) 删除指定元素值 clear( ) 清空列表元素 del函数删除列表对象
s.pop(1)
s.remove("元素值")
s.clear()
copy() 复制内容,不共享内存地址,方便后续修改
s1=['ming','hua','juan','yun']
s2=s1.copy()
s2[0]='new'
reserve( ) 倒置 sort( ) 升序排列
range函数生成列表
for i range(10)
for i range(16,10,-1)
- 元组tuple( )
元组是不可变的列表,只可读取
- 集合set( )
输入一个列表、字典或字符串作为输入,创建set。Python中集合功能:进行集合操作、消除重复元素。
a=set('aabc')
b=set('cdfe')
print('a=',a)
print('b='b)
x=a&b
y=a|b
z=a-b
- 字典dict{ }
索引自定义,键值对
print(k["键"])
print(k.keys())
print(k.values())
- 不同类型可相互转换
zip( ) 将列表、元组压缩成字典
z1=zip(('A','B','C'),[1,2,3,4])
print(z1)
print(dict(z1))
4 控制流
4.1 顺承
多个逻辑行写在一个物理行,中间用‘ ; ’隔开 一个逻辑行写在多个物理行,用‘****’隔开
4.2 分支
salary=4
if salary>5:
print("Wow!!!")
elif salary>3:
print("That's OK!")
elif salary>2:
print("emmm")
else:
print("Fighting!")
4.3 循环
- while循环
a=1
while a<10:
if a<=5:
print(a)
elif:
print("hello!")
a=a+1
else:
print("Done!")
- for循环
for(变量)in(迭代器): 执行语句块 #迭代器:对象可取下一位
a={'Yao':226,'Sharq':216,'AI':183}
for i in a:
print(i,a[i])
终止循环
for i in range(1,5):
if i==3:
break
print(i)
for i in range(1,5):
if i==3:
continue
print(i)
for i in range(1,5):
if i==3:
pass
print(i)
列表生成器
fruits=['"Apple"','Watermelon','"Banana"']
[x.strip('""') for x in fruits]
[x**2 for x in range(21) if x%2]
[m+n for m in 'ABC' for n in 'xyz']
4 Python函数
封装特定功能,可直接调用,在进行数据分析时大多直接调用定义好的函数操作数据
def my_abs(x):
if x>=0:
renturn x
else:
return -x
my_abs(-9)
def test(i,j):
k=i*j
return i,j,k
test(4,5)
a,b,c=test(4,5)
print(a,b,c)
type(test(4,5))
变量<—>函数、把另一个函数作为参数传入一个函数
m=abs
def add(x,y,f):
return f(x)+f(y)
add(7,-5,m)
map 将传入的函数依次作用到序列的每个元素,返回新序列
mylist=[-1,2,-3,4,-5,6,7]
map(abs,mylist)
for i in map(abs,mylist):
print(i)
filter
def is_odd(x):
return x%2
filter(is_odd,mylist)
for i in filter(is_odd,mylist):
print(i)
只有函数体没有函数名
f=lambda x:x*x
f(4)
def f(x):
return x*x
5 Python模块
导入 import pandas as pd #pd.Dataframe() from pandas import Dataframe #Dataframe()
|