(二)Python基础


python特点

  1. 简单、直观、强大
  2. 开源,以便任何人做出贡献
  3. 代码容易理解
  4. 适用于短期开发的日常任务
  5. 可扩展性、丰富的库、面向对象、高级语言、可移植性等特点

缺点

  1. 强制缩进
  2. 构架选择太多
  3. 性能低(低于C)

Anacoda python 是python科学计算包的合集,包含了常用科学计算、数据分析

1 常用数据分析包

  • numpy:科学计算,提供数组、矩阵 ,python本身无数组,只有列表
  • scipy:统计推断、统计检验等
  • pandas:基于numpy的数据读取、数据整合、数据清洗整理等
  • statsmodel:统计检验、统计建模等
  • scikit-learn:数据变换、机器学习、交叉验证等
  • matplotlib:绘图
  • seaborn:高级统计制图包

安装包:CMD->conda install 包名 ;或CMD->pip install 包名

2 Python基本数据类型

  • python有6中基本数据类型:

string 字符串
number 数值类型:整数(integer)和浮点数(float)
bool 布尔类型:True/False
time/datetime 日期时间
None 空值
complex 复数

2.1 字符串

字符串可用 ’ " ‘’’ 引用
字符串本身内部还含有单引号(双引号),外部使用双引号(单引号)
字符段使用三引号,
字符串内部含有单引号和双引号,加入转义字符 \ 原样输出

  • 转义字符
    “\”后一位字符原样输出
    “\t”制表符,跳转到下一tab位置
    “\n” 换行
    “r” 字符串前面加r代表原样输出,不需要转义时使用
    ##读取数据文件路径时前面加r

  • 子字符串——取子字符串

‘in’

s='python'
print('py' in s)

切片

print(s[2])      #数字代表索引从0开始
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      #7的三次方

// 取整

9//2      #4
9.0//2.0  #4.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

  1. 列表list[ ]

有序集合,内部元素可不同类型
正序索引从0开始,倒序索引从1开始

print(len(s))  #查询列表长度
print(s[1])    #索引为1的/第一位元素
print(s[-1])   #倒数第一个元素
print(s[::2])  #[开始的位置:结束的位置:步长] 
               #切片步长为2,即每隔一个取元素

修改元素

s[3]="修改后的元素"     #直接取出元素修改
print(s[3])

插入元素
append( ) 每次在列表末尾填入一个元素
extend( ) 在列表末尾加入另一个列表
insert( ) 在指定位置插入元素或列表

s.append('要插入元素')
s.extend(['要插入元素1','要插入元素2','...'])
s.insert(1,list)   #将列表list插入索引第一位后

删除元素
pop( ) 可指定索引,删除某个位置的元素,不指定时默认删除末尾元素,返回被指定位置并删除该位置的元素
remove( ) 删除指定元素值
clear( ) 清空列表元素
del函数删除列表对象

s.pop(1)  #删除索引为1的元素
s.remove("元素值")
s.clear()

copy() 复制内容,不共享内存地址,方便后续修改

s1=['ming','hua','juan','yun']
s2=s1.copy()        
s2[0]='new'   #复制的是s1的内容,修改s2不干扰s1

reserve( ) 倒置
sort( ) 升序排列

range函数生成列表

for i range(10)
for i range(16,10,-1)  #从16到10倒序的数列
  1. 元组tuple( )

元组是不可变的列表,只可读取

  1. 集合set( )

输入一个列表、字典或字符串作为输入,创建set。Python中集合功能:进行集合操作、消除重复元素。

a=set('aabc')
b=set('cdfe')
print('a=',a)        #a= {'b', 'c', 'a'}
print('b=',b)        #b= {'f', 'e', 'c', 'd'}
x=a&b   #取交集
y=a|b   #取并集
z=a-b   #取差集
  1. 字典dict{ }

索引自定义,键值对

print(k["键"])     #获取指定键对应的值
print(k.keys())    #获取所有键列表
print(k.values())  #获取所有值列表
  1. 不同类型可相互转换

zip( ) 将列表、元组压缩成字典

z1=zip(('A','B','C'),[1,2,3,4])
print(z1)
print(dict(z1))     #{'A':1,'B':2,'C':3}

4 控制流

4.1 顺承

多个逻辑行写在一个物理行,中间用‘ ; ’隔开
一个逻辑行写在多个物理行,用‘ ** \ ** ’隔开

4.2 判断

if、else、elif

salary=4
if salary>5:
    print("Wow!!!")
elif salary>3:
    print("That's OK!")
elif salary>2:
    print("emmm")
else:
    print("Fighting!")

三元运算操作
在赋值时直接加入判断,简化代码

a,b=1,3
c=a if a>b else b  
print(c)           #3
##########################等同于
a,b=1,3
if a>b:
    c=a
else:
    c=b
print(c)

4.3 循环

  1. while循环
a=1
while a<10:
    if a<=5:
        print(a)
    elif:
        print("hello!")
    a=a+1
else:                 #########
    print("Done!")
  1. for循环

for(变量)in(迭代器):
执行语句块
#迭代器:对象可取下一位

a={'Yao':226,'Sharq':216,'AI':183}
for i in a:          #取键
    print(i,a[i])    #分别打印出每个键和值

终止循环

  • break:跳出整个循环
for i in range(1,5):
    if i==3:
        break
    print(i)     #1\2 
  • continue:跳出当前循环,执行下一个循环
for i in range(1,5):
    if i==3:
        continue
    print(i)    #1\2\4
  • pass:占位符,不执行,保持格式完整性
for i in range(1,5):
    if i==3:
        pass
    print(i)    #1\2\3\4

列表生成器

fruits=['"Apple"','Watermelon','"Banana"']
[x.strip('""') for x in fruits]      #['Apple','Watermelon','Banana']  清洗掉列表内元素双引号
[x**2 for x in range(21) if x%2]      #[1,9,25,49,81,121,169,225,289,361]   x%2=0/1(False/True)21内所有奇数的平方
[m+n for m in 'ABC' for n in 'xyz']    #['AX','AY','AZ','BX','BY','BZ','CX','CY','CZ']  排列组合

4 Python函数

封装特定功能,可直接调用,在进行数据分析时大多直接调用定义好的函数操作数据

  • 自定义函数 def 、abs()计算绝对值
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)          #(4 5 20)
a,b,c=test(4,5)    
print(a,b,c)       #4 5 20
type(test(4,5))    #tuple
  • 高阶函数

变量<—>函数、把另一个函数作为参数传入一个函数

m=abs      #将绝对值函数赋给变量m,m即代表绝对值函数

在这里插入图片描述

def add(x,y,f):
    return f(x)+f(y)
add(7,-5,m)            #12

map 将传入的函数依次作用到序列的每个元素,返回新序列

mylist=[-1,2,-3,4,-5,6,7]
map(abs,mylist)
for i in map(abs,mylist):
    print(i)               #1\2\3\4\5\6\7

filter

def is_odd(x):
    return x%2       #定义函数,整除=0为False,其余为True->进入下一步,即过滤得到列表的奇数元素
filter(is_odd,mylist)    
for i in filter(is_odd,mylist):
    print(i)             #1\3\5\7
  • 匿名函数 lambda

只有函数体没有函数名

f=lambda x:x*x
f(4)               #16
###等同于
def f(x):
    return x*x

5 Python模块

导入
import pandas as pd #pd.Dataframe()
from pandas import Dataframe #Dataframe()

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值