Python笔记

目录

一、基本知识

二、列表

列表的函数举例后续

三、机器学习


一、基本知识

1、中文编码要在头加上注释:(可以指定源码文件的编码格式)

#coding:gbk

2、#算符运算符:加+,减-,乘*,除/,整除//,取余%,幂运算**(例如11//5=5。向下取整。再例:-9//-4= 2,  -9//4=-3)

9%4=1 .一正一负时用公式:余数 = 被除数 – 除数 * (整除后的)商。如:9%-4=9-(-4)*(-3)=-3

3、内置函数range():不管range对象标识的整数序列有多长,所有range对象占用的内存空间都是相同的。语法:range(start,stop,step)

In与 not in判断整数序列中是否存在(不存在)指定的整数。

4、for in循环:例 for item in ‘python’: print(item)  则依次输出p y t h o n (将p取出赋值给item)

再例for I in range(10): print(i) 则依次输出1 2 3 …9 .因为range()产生一个整数序列,是一个可迭代对象。

如果在循环中不需要用到自定义变量,可将自定义变量写为  _

例 for _ in range(5) :print(1)  则输出5次1

5、else(没有碰到break执行else) 可以与for循环、while循环搭配,循环正常结束,没有走break的时候,就走else语句。

二、列表

1、列表是根据需要动态分配和回收内存,可以任意数据类型混存。

其索引有两种,第一种是像数组一样0,1,2…,第二种是从最后一个元素开始,为-1,倒二为-2…

2、获取列表中指定元素的索引:index(),如果列表中有多个,仅返回第一个,可以在指定的start 和stop 之间查找。

例如:print(  lst.index(‘hello’)  ) 或者print(  lst.index(‘hello’,1,3)  ) #代表从1开始找,到2结束,(不包括3)

3、列表切片操作: 语法: 列表名[start : stop : step ]

切片的结果是原列表片段的拷贝,拷给一个新的列表,也即两个列表不是同一个id

切片的范围[start , stop)

Step为正数时:start默认是第一个元素,从start往后计算切片

Step为数时:start默认是最后一个元素,从start往计算切片

例:原list为[1,2,3,4,5] 那么print(list[::-1]) 结果为[5,4,3,2,1]

4、列表元素的添加操作:append():在列表的末尾添加一个元素

extend()在列表的末尾至少添加一个元素 list.extend(list2) 可以将列表2追加到列表末尾

insert()在列表的任意位置添加一个元素;list.insert(1,90) 在 索引为1的位置插入90

切片 在列表的任意位置添加至少一个元素 list[1:]=list3 则在1之后,也即索引2开始往后都是list3里面的内容,即list3覆盖原list的1之后的所有

5、列表元素的移除操作:remove(想要删的元素)一次删除一个元素,重复元素只删第一个

lst=[12,98,932,2]
print(lst)
lst.remove(
932#移除932那个元素
for i in range(3):  #for循环
   
print(lst[i])

Pop(索引)删除一个指定位置上的元素 ,不指定索引,删除列表中最后一个元素

切片:至少删除一个元素,将产生一个新的列表对象,也即原列表没发生改变

例list[1,2,3,4] new_list =list[1:3] 则new_list 为[2,3]

切法2:不产生新列表,而是用空列表将原来想要删除的位置替代

例:list[1:3]=[] 则list为[1,4]

Clear()清空列表,但是列表还在,只是为空 例 list.clear()

Del 删除列表,列表最后不存在了 例 del list

6、lst.sort()  print(lst) 默认升序 在原列表基础上排序,没产生新列表

想降序:lst.sort( reverse = False)   print (lst)

或者:使用内置函数sorted()对列表进行排序,将产生一个新的列表对象

New_list = sorted(lst) #默认升序 new_lst =sorted(lst, reverse = Ture) #打印出来则降序

7、列表生成式 [i for i in range(1,10) ] 输出结果为[1,2 …9]

lst = [i*i   for i in range(1,10) ] 输出结果为[1,4 …81]#也最前面的位置加入列表元素表达式

列表的函数举例后续

lst = [1, 2, 4, 3, 6]
#  append函数
print(' 以下是append函数 ')
print(lst)
lst.append(5)  # 在列表后面直接加一个元素
print(lst)

#  sort函数
print(' 以下是sort函数 ')
lst.sort()  # 默认升序(一般符号后面要空一个位置,逗号、注释的#符号都是如此)
print(lst)
lst.sort(reverse=False)  # 升序
print(lst)
lst.sort(reverse=True)  # 降序
print(lst)

# remove函数
print(' 以下是remove函数 ')
lst.remove(6)  # 将括号内的元素从列表内移除
print(lst)

# extend函数  在原列表后面加入批量元素
print(' 以下是extend函数 ')
list2 = [7, 8, 9]
lst.extend(list2)
print(lst)

# insert函数 在哪个位置插入什么元素
print(' 以下是insert函数 ')
lst.insert(1, 10)  # 在第一个位置插入10,从0开始数
print(lst)

#  切片:产生一个新的列表,原列表没有改变
print(' 以下是切片 ')
new_list2 = lst[0: 6]
print(new_list2)
new_list = lst[1: 3]  # 范围:[1,3) 从0开始数
print(new_list)
# 还可以以切片的方式删除部分内容:
lst[3: 5] = []
print(lst)

#  pop函数 没有默认参数则默认删除最后一个
print(' 以下是pop函数 ')
lst.pop(6)  # 删除索引为8的元素,与remove的区别是 remove指啥删啥(删指定元素),pop指哪删哪(删指定下标)
print(lst)
lst.sort(reverse=True)  # 降序
print(lst)
# clear函数 清空列表 ,也即列表变为空列表 而 del则删除整个列表,不存在这个变量了。

运行结果:

三、机器学习

泰坦尼克号生还者预测练习

import pandas as pd
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import classification_report

data = pd.read_csv('titanic_data.csv')  # 读取csv数据
# 用pandas的drop函数删掉id整列、axis表示删除整列、在原数据上修改
data.drop('PassengerId', axis=1, inplace=True)

# “data.loc标签索引” , 后面的‘Sex’为名称索引
# 意思是将‘Sex’的True(是male的)改str为1,将是female是True的行,‘Sex’列的str改为0
data.loc[data['Sex'] == 'male', 'Sex'] = 1
data.loc[data['Sex'] == 'female', 'Sex'] = 0
# 用均值来填充缺失值
data.fillna(data['Age'].mean(), inplace=True)

Dtc = DecisionTreeClassifier(max_depth=5, random_state=8)  # 构建决策树模型
# data.iloc[]位置索引
Dtc.fit(data.iloc[:, 1:], data['Survived'])  # 模型训练
pre = Dtc.predict(data.iloc[:, 1:])          # 模型预测

print(data)
print(pre)   # 其显示结果为是否生还的布尔值
# 判断准确率:import 那里输入class、文件中比较
# 判断预测结果方法1:
print(pre == data['Survived'])  # 比较模型预测值与样本实际值是否一致
# 判断预测结果方法2:
rst = classification_report(data['Survived'], pre)   # 模型分类报告
print(rst)
# 未生还样本预测 准确率84%、召回率88%、F1系数为0.86、共有549个未生还者。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值