python数据分析

数学建模自用

python数据分析

1. 基本语法

用<变量名>=<表达式>的方式对变量进行赋值

a=1
a
1
s = 'hello world'
s
'hello world'

(1)数据类型

字符串

用引号来定义(单引号与双引号等价)

s='hello world'
s
'hello world'

三引号用来输入包含多行文字的字符串

s='''hello
my
world'''
print(s)
hello
my
world

字符串的加法

s="hello "+"worrld"
s
'hello worrld'

字符串索引(索引号从0开始)

s[1]
'e'

字符串的分割(spilt方法,可以按照自己指定的字符分割,默认是空格)

s="hello world"
s.split()
['hello', 'world']
s="hello,world"
s.split(",")
['hello', 'world']

查看字符串的长度

len(s)
11
整数
b=100
b
100
浮点数
c=3.8
c
3.8
布尔值
a=True
a
True
a=1>2
a
False
空值
a=''
a
''
len(a)
0
a = None
a
运算符

基本运算

2**3 #幂运算
8
9%2 #取余运算
1
9//2 #取整除
4

比较运算

1 != 2
True
1>2
False
3==3 
True

赋值运算

a=2
a*=3 #a=a*3
a
6

逻辑运算

与运算

a=True
b=False
a&b
False
a=3>2
b=4>3
a&b
True

或运算

a=1>2
b=4>3
a|b
True

非运算

not a
True

(2)数据结构

列表List

Python用[]来生成列表,也可以用list关键字

a=[1,2,3,4,5]
a
[1, 2, 3, 4, 5]
actors=['周迅','章子怡','赵薇']
actors
['周迅', '章子怡', '赵薇']
b=[1,2.3,'a','b']
b #列表中的元素允许各个元素不一样
[1, 2.3, 'a', 'b']
list('abcde') #利用list生成列表
['a', 'b', 'c', 'd', 'e']

列表操作

a+b #将两个链表链接在一起
[1, 2, 3, 4, 5, 1, 2.3, 'a', 'b']
a[0] #索引号,从0开始
1
a.append(6) #在末尾增加一个数
a
[1, 2, 3, 4, 5, 6]
a.insert(1,10) #索引号,值
a
[1, 10, 2, 3, 4, 5, 6]
a.pop() #默认是删除最后一个元素,在里面写数字的话是写索引号
a
[1, 10, 2, 3, 4, 5]
a.pop(1)
a
[1, 2, 3, 4, 5]
a[0:3] #数据切片,左闭右开区间
a[-1] #-1表示倒数第一个数
a[-3:-1] #负索引切片
a[:3]
a[-3:] #不写的话默认从左边第一个开始或者取到右边最后一个
[3, 4, 5]
b=[1,2,3,4,5,6,7,8,9]
#b=[a:b:i] #间隔取值,前面区间仍然是左闭右开,后面为步长,同样也适用于负数的情况
b[2:9:3]
[3, 6, 9]

元组tuple

tuple和list非常类似,但是tuple一旦初始化就不能修改

a = (1,2,3,4,5)
a.pop()
a 
---------------------------------------------------------------------------

AttributeError                            Traceback (most recent call last)

Cell In[195], line 2
      1 a = (1,2,3,4,5)
----> 2 a.pop()
      3 a


AttributeError: 'tuple' object has no attribute 'pop'

字典 dict

用{key:value}来生成Dictionary

字典里面的数据可以是任何数据类型,也可以是字典

mv = {"name":"肖申克的救赎","actor":"罗宾斯","score":9.6,"country":"USA"}
mv
{'name': '肖申克的救赎', 'actor': '罗宾斯', 'score': 9.6, 'country': 'USA'}
mv["name"]
'肖申克的救赎'
mv.keys()
dict_keys(['name', 'actor', 'score', 'country'])
mv.values()
dict_values(['肖申克的救赎', '罗宾斯', 9.6, 'USA'])
mv.items()
dict_items([('name', '肖申克的救赎'), ('actor', '罗宾斯'), ('score', 9.6), ('country', 'USA')])
mv["name"] = "泰坦尼克号"
mv
{'name': '泰坦尼克号', 'actor': '罗宾斯', 'score': 9.6, 'country': 'USA'}
mv["director"] = "德拉邦特"
mv
{'name': '泰坦尼克号',
 'actor': '罗宾斯',
 'score': 9.6,
 'country': 'USA',
 'director': '德拉邦特'}
mv.pop("director")
mv
{'name': '泰坦尼克号', 'actor': '罗宾斯', 'score': 9.6, 'country': 'USA'}

集合set

Python用{}来生成集合,集合不含有相同元素

s = {2,3,4,2}#自动删除重复数据
s
{2, 3, 4}
len(s)
3
s.add(1) #如果加入集合中已有元素没有任何影响
s
{1, 2, 3, 4}
s1 = {2,3,5,6}
s1
{2, 3, 5, 6}
s & s1 #交集
{2, 3}
s | s1 #并集
{1, 2, 3, 4, 5, 6}
s - s1 #差集
{1, 4}
#s.remove(5) #删除集合s中一个元素,注意只能删除一次
#s.pop() #随机删除任意一个元素,删完后报错
#s.clear() #一键清空
s
{1, 2, 3, 4}

平时列表和字典用的是最多的

可变对象和不可变对象

可变对象可以对其进行插入,删除等操作,不可变对象不可以对其进行有改变的操作。Python中列表,字典,集合等都是可变的,元组,字符串,整型等都是不可变的。

类型转换
int(3.14)
3
float(3)
3.0
s = "abcd"
type(s) #str
str
list(s)
['a', 'b', 'c', 'd']

(3)判断和循环

2 == 2
True
97 == 'a'
False
'a' == 'A'
False
if 2>1:
    print('hello')
hello
a = 1
b = 2
if a>b:
    print("a大于b")
else:
    print("a小于等于b")
a小于等于b
x = 0
if x>0:
    print("x为正")
elif x==0:
    print("x为0")
else:
    print("x为负")

x为0
for i in range(5):#(1,2,3,4,5):#[1,2,3,4,5]:#[1,2,3,3,4]#列表元组集合字典字符串都行
    print(i)
0
1
2
3
4
i=1
while i<10:
    print(i)
    i=i+1
1
2
3
4
5
6
7
8
9
for i in [1,2,3,4,5,6,7,8,9]:
    if(i%2)==1:
        print(i)
1
3
5
7
9
{3,4,5,6,3,1,2,3}
{1, 2, 3, 4, 5, 6}

(4)列表生成式

列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式

list(range(1,11)) #range(1,11)迭代器,左闭右开,只有一个参数从0开始,两个参数是区间,三个参数最后一个数是跨度,不写的时候默认跨度为1
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[x**2 for x in range(1,10)] #列表生成平方
[1, 4, 9, 16, 25, 36, 49, 64, 81]
[i for i in range(1,100) if i%10 == 0]
[10, 20, 30, 40, 50, 60, 70, 80, 90]
[str(x) for x in range(1,10)]
['1', '2', '3', '4', '5', '6', '7', '8', '9']
[int(x) for x in list("123456789")]
[1, 2, 3, 4, 5, 6, 7, 8, 9]

2. 函数

(1)内置函数

abs(-1)
1
a =[2,3,1,-4,12,6]
max(a)
12
min(a)
-4
sum(a)
20

(2)自定义函数

def add(x,y):
    a = x+y
    return a
print(add(2,3))
5

使用函数时,只需要讲参数换成特定的值传给参数。

Python并没有限定参数的类型,因此可以使用不同的参数类型:

print(add(1,2.3))
3.3

在这个例子中,如果传入的两个参数不可以相加,那么Python将会报错

#print(add(2,'a')) #报错
print(add('2','a'))
2a

如果传入的参数与实际不符合,也会报错

#add(1) #报错

可以在函数定义的时候给参数设定默认值,例如

def func(x,a=1,b=0,c=0):
    return a*x**2+b**x+c
func(10)
func(10,1,1,1)
102

一个函数也可以返回多个返回值

def f(x):
    return x**2,x**3
f(2) #返回元组
(4, 8)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值