数学分析---Python的基础语法

1. 输入与输出、判断语句、循环语句

1.1 输入与输出

输入input()
输出print()

1.2 判断语句

if...else...	

1.3循环语句

for ... in
while

2.数据类型:列表、元组、字典、集合、字符串

2.1列表(list):[]

三大基本操作:增加,删除,查改
增加:append()尾部添加,insert()指定位置增加,extend()增加多个元素
删除:pop()尾部删除,del a,del a[],remove()指定位置和指定元素
查改:a[1:5]
len()
列表不要求里面所有元素的数据类型一样

2.2元组(tuple): ()

一旦初始化,不能修改,即不能增加,不能删除个别元素(只能整个删除)
数组形式访问

2.3字典(dictionary):{}

key-value
pop
get

2.4集合(set): {}

集合的花括号里直接放元素,字典里放键值对
key的集合
add()
remove()
discard()
pop()交互式里删除第一个元素,文本模式下删除是无序的
clear()

2.5字符串

两种格式输出

1.print("pi:%.2f"%3.1415926)
2.print("pi:{:.2f}".format(3.1415926))

字符串拆分

a = "i love python"
x = a.split(" ")
a.find("python")
" ".join(x)

3.注释、引入模块/包和函数

3.1 注释

注释中有中文

# -- coding:utf-8--

3.2 引入模块/包

# 导入一个模块
import model_name
# 导入多个 模块
import model_name1,module_nema2
# 导入包中指定模块
from package_name import module_name
# 导入包中所有模块
from package_name import *

4.其他

题目:A+B
输入格式:有一系列的整数对 A 和 B,以空格分开。
输出格式:对于每个整数对 A 和 B,需要给出 A 和 B 的和。

while(True):
	try:
		line = input()
		a = line.split()
		print(int(a[0])+int(a[1]))
	except:
		break

split()语法:

str.split(str="",num=string.count(str))

参数

  • str – 分隔符,默认所有的空字符,包括空格、换行(\n)、制表符(\t)等
  • num – 分割次数。默认为-1,即分隔所有

返回值
返回分割后的字符串列表

5.python文件IO

open函数,可以新建一个文件

f=open('C:\\Users\\dwz19\\Desktop\\test.txt','r')
f.close()
f=open(r'C:\Users\dwz19\Desktop\test.txt','r')
f.read()#只读了一遍,不会回到原点
f.readline()#一行一行读
f.readlines()#整个读完以后形成一个列表

改进版写法

with open(r'C:\Users\dwz19\Desktop\test.txt','r') as f:
	print(f.read())
#a是追加,w是重写
with open('test.txt','a') as f:
    print(f.write("好好学习\n"))

os模块

os.getcwd()
os.listdir()
os.mkdir()
os.path()  模块主要用于获取文件的属性

json模块

with open('test2.json','w') as f:
    print(f.write('123\n'))

json模块提供四个模块:dumps、dump、loads、load
dumps将数据类型转变成字符串,dump将数据类型转变成字符串,然后存储在文件中
loads将字符串转变成数据类型,load把文件打开把字符串变成数据类型
引用https://www.cnblogs.com/momoyan/p/9145478.html

import json
#dumps把list转化为字符串,然后写入文件
a=[1,2,3,4,5,6]
b=json.dumps(a)
with open('test3.json','w') as f:
    json.dump(b,f)
#load把文件打开把字符串变成数据类型    
with open('test3.json','r') as f:
    h=json.load(f)    

如何制作一个数据集
数据集里德东西

学号 姓名 成绩
1 a 10
2 b 20
3 c 30
with open('....','r') as f:
	a=f.readlines()
a	
['学号 姓名 成绩\n', '1 a 10\n', '2 b 20\n', '3 c 30']
for i in range(0,3):
	print(a[i].split())

['学号', '姓名', '成绩']
['1', 'a', '10']
['2', 'b', '20']

for i in range(0,3):
	print(a[i].split()[2])
成绩
10
20

7.python函数和模块

python中,strings、tuples和numbers是不可更改的对象
list、dict是可以修改的对象
传不可变对象实例(拷贝)

def hanshu(a):
	a+=1
	print('a=',a)

c=3
hanshu(c)
print('c=',c)

打印出
a=4
c=3

传可变对象实例(引用)

def SA(c):
	c[0] = 0
	print(c)

a=[1,2,3]
SA(a)

打印出
a=[0,2,3]

一般情况下,我们不知道可以从Excel中读取了多少个数据。
当函数参数不可知,需要写一个可边长参数的函数

元组变长参数,参数名前面有一个*
字典变长参数,参数名前面有两个*

参考:https://www.jianshu.com/p/fe0eb1e90bb4

return 返回多个值的类型是元组

dir()不带参数时,返回当前范围内的变量、方法和定义的类型列表
dir()带参数时,返回参数的属性、方法列表

8.类和魔法方法第一部分 python的类

self代表类的实例,而非类
类是不能直接使用方法和属性的

继承用()表示
多继承遇到相同的方法,顺序是从左到右

9.类和魔法方法第二部分 python魔法方法及简单的类和专业讲解

import os
import datetime
import numpy as np



class data():
    def __init__(self,path):
        self.path=path
        self.open_file()
        
    def open_file(self):
        with open(self.path,'r') as f:
            self.list = []
            for i in f.readlines():
                self.list.append(i.split(','))#把数据整理成二维数组形式    
            #print(self.list)
            del self.list[0]#把第一行抬头删去
            #print(self.list)
    
    def print_col(self,col):
        assert isinstance(col,int),'您需要输入一个整数'#断言
        temp_list = [i[col] for i in self.list]
        return temp_list
        #print(temp_list)
        
    #实现统计功能
    def unique(self,a_list):
        temp_list = []
        for i in a_list:
            if i in temp_list:
                pass
            else:
                temp_list.append(i)
        return temp_list
        

    def all_len(self):                   
        for i in range(len(self.list[0])):
            print(i,':',len(self.unique(self.print_col(i))))
            
if __name__ == '__main__':
    #建立数据的路径
    print(os.getcwd())
    path = os.path.join(os.getcwd(),'code\data\id6.csv')
    print(path)
    
    a = data(path)
    a.all_len()
    #a.print_col(0)

10.正则表达式

re.match 从起始位置开始匹配
re.search 扫描整个字符串返回第一个成功的匹配
re.match和re.search如果成功匹配返回的是一个函数,如果要查看需要使用.group()
re.compile 生成一个正则表达式的对象
findall 在字符串中找到正则表达式所匹配的所有子串,并返回一个列表
match和search是匹配一次findall匹配所有

import re
a='123dsfgd123fsdfd123fsffsf456'
b='dsfgd'
print(re.search(b,a).group())

正则表达式修饰符-可选标志不同的匹配原则

11.常见ide介绍和常见错误排查

快捷键

ctrl+z 返回上一步
ctrl+shift+z 前进一步
shift+Enter 直接跳转到下一行
ctrl+/注释
tab缩进
shift+tab取消缩进
ctrl+r替换
ctrl+f查找
ctrl+shift+f整个工程查找
ctrl+Numpad+展开
ctrl+Numpad-折叠
ctrl+shift+/-展开/折叠全部代码块

pycharm里左下角有个structure,左侧底部有todo

常见错误排查
一、TypeError:类型错误,对象用来表示值的类型非预期类型时发生的错误

二、AttributeError:属性错误,特性引用和赋值失败时会引发属性错误

三、NameError:试图访问的变量名不存在。

四、SyntaxError:语法错误,代码形式错误

五、KeyError:在读取字典中的key和value时,如果key不存在,就会触发KeyError错误。

六、IndexError:索引错误,使用的索引不存在,常索引超出序列范围,序列中没有此索引(index)

七、IndentationError:缩进错误

处理异常

i=0
try:
	10/i
except ZeroDivisionError:
	print('baocuo')
else:
	print(10/i)

try…except…finally
无论except发生了什么,都要执行finally

11.常见的数据类型

1.0.8以上的是高相关性
0.5~0.8相关
0.3~0.5代码可用
0.3以下不相关了

线性相关-----皮尔逊相关性

独立性分析能提炼非线性相关性

对于数值类数据

数据归一:神经网络,线性回归等必须要做,影响精度比较大,决策树不一定要做
(x-min/(max-min)
均值为0,标准差为1的正态分布
(x-mean)/std

数据的分布最好整成正态分布的,例如金融贷款小额数据比较多,大额的数据比较少,取个log把数据整成正态分布的

对于字符串数据
eg.编码
小说,教材,传记
0,1,2
三者相互之间距离不相等
使用one-hot编码
100,010,001
三者之间距离相等

解决不同寓意距离不同的问题,使用one-hot编码

eg.
small,mid,large
这个时候使用one-hot编码就不太合适
1,2,3更合理点
引入外部数据
20,22,25更好一些

对于数据为nan
1.数据量少,对结果影响不大,直接删除
2.填充,均值,中值,差值,上一个最近,下一个最近
3.推理
4.nan当成不可能实现的情况

在结构化数据里有多少列数据就有多少维
怎么升维,怎么降维
升维,特征工程,核方法
降维。
PCA,无监督学习,删除不重要的。可以理解为方差,如果一个数据从头到尾变化不大,认为信息量不大,可以被删除。如果变化量比较大,可以认为被保留。
LCA,有监督学习。f(x)=y,如果y变x变留下,如果y变x不变删除。
TSNE,多维数据映射成一维数据

13.常见数据分析方法

13.1 对比分析

序列(横向)对比(不同时期同一标准的结果的对比)自比
纵向对比(不同地区,不同情况下的对比)他比
联合对比(序列和纵向的结合)

13.2 结构分析

多角度分析
顺序分析
拆分效果

13.3 同期群分析

13.4 漏斗分析

时间
节点
流量

13.5 聚类分析

13.6 相关分析

陷阱:
中国GDP每年上升
海平面每年上升
盲目去理解数据之间的关系

14.numpy和pandas简介

Numpy:array和matrix
Pandas:Series(一维)DataFrame(高维)

numpy的使用

a[0,4:2:-2]#a的第0行,从后往前隔两个人
np.matmul(a,a)
a.cumsum()#数组元素进行累加
np.concatenate([a,a],axis=0)#整合数组,在axis=0的维度上整合
np.where(a>15,0,2)#a中的元素,如果大于15,赋值为0,如果不是赋值为2

pandas的使用

data={'id':['jack','Bob','jyz'],'age':[1,2,3],'score':[10,20,30]}
a=pd.DataFrame(data)
a.index
a.columns
#查看列
a['id']
a['age']
a['score']
#查看行
a[0]
#切片
a.iloc[0,0]
a.iloc[0,0:3]
a.iloc[1]

a.loc[1,'age']
a.loc[1]

15. 简单数据处理流程

1.查看一下数据简单的概况
2.处理nan数据

数值型的处理

dropna(axis=0,how='any')
how='any'#把这行和列全删除
how='all'#如果这行都是nan才全部删除
drop_duplicates()#删除重复的数据
dropna和fillna都要重新赋值
data=data.dropna(-999)
data.dropna(-999,inplace=True)
data=data.fillna(method='bfill')#用下面的值替换
method='ffill'#用上面的值替换

object类型的处理
one-hot,label
one-hot

pd.get_dummies(data.meter)
data.jion(pd.get_dummies(data.meter))

label

encode = {col : index for index, col in enumerate(data['primary_use'].unique())}
encode = data['primary_use'].value_counts().to_dict()
print(encode)
print(data['primary_use'].map(encode))
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python是一种高级编程语言,具有简单、灵活和强大的特点。它有许多内置的数据类型和控制流结构,支持面向对象编程和函数式编程。 下面是一些Python基础语法的简要介绍: - 变量: 在Python中,变量不需要声明类型,可以使用任何类型的数据。使用 `=` 操作符赋值。 ``` x = 10 y = "Hello, World!" z = [1, 2, 3] ``` - 数据类型: Python有许多内置的数据类型,如整型(int)、浮点型(float)、布尔型(bool)、字符串(str)、列表(list)、元组(tuple)、字典(dict)等。 ``` # 整型 x = 10 # 浮点型 y = 10.5 # 布尔型 z = True # 字符串 s = "Hello, World!" # 列表 lst = [1, 2, 3] # 元组 tpl = (1, 2, 3) # 字典 d = {'a': 1, 'b': 2} ``` - 运算符: Python支持常见的算术运算符、比较运算符和逻辑运算符。 ``` # 算术运算符 x = 10 y = 5 print(x + y) # 15 print(x - y) # 5 print(x * y) # 50 print(x / y) # 2.0 print(x // y) # 2 print(x % y) # 0 print(x ** y) # 100000 # 比较运算符 x = 10 y = 5 print(x == y) # False print(x != y) # True print(x > y) # True print(x < y) # ### 回答2: Python基础语法是指Python编程语言中的一些基本规则和语法结构,包括数据类型、变量、运算符、控制流程、函数和模块等。 首先是数据类型,Python中常见的数据类型有整型(int)、浮点型(float)、字符串型(str)、布尔型(bool)和列表、元组、字典等复合数据类型。 其次是变量,Python中的变量可以用来存储数据,使用时无需声明类型,直接进行赋值即可。 再者是运算符,Python中常见的运算符有算术运算符(+、-、*、/等)、比较运算符(>、<、==等)、逻辑运算符(and、or、not等)等。 控制流程是Python编程中的重要概念,包括条件语句(if-elif-else)、循环语句(for、while)和跳转语句(break、continue等),用于根据运行结果来选择特定的执行路径。 函数是Python中的一个重要概念,可以将一段可重复使用的代码封装为函数,方便代码的编写和管理。通过定义函数,可以将参数传入,并得到返回值。 最后是模块,模块是Python中组织代码的一种方式,通过模块可以从其他源文件中导入函数或变量。Python标准库中有很多内置的模块,还可以通过安装第三方模块来扩展功能。 总结来说,Python基础语法就是理解并掌握Python编程语言中的数据类型、变量、运算符、控制流程、函数和模块等基本概念和规则,这些是进行Python编程的基础。 ### 回答3: Python是一种简洁、易学的高级编程语言,它具有丰富的基础语法。 首先,Python是一种解释型语言,它的代码无需编译,可以直接运行。这使得Python代码的编写和测试更为高效。 其次,Python使用缩进来表示代码块,而不是使用大括号或关键字,这使得代码更加清晰易读。在Python中,用四个空格或一个制表符来表示一层缩进,在代码块结束时取消缩进即可。 在Python中,变量的声明是动态的,不需要提前声明变量的类型,只需指定变量的名称和赋予它一个值。例如,使用"="来给变量赋值。 Python还提供了许多内置的数据类型,包括整数、浮点数、字符串、布尔值、列表、元组和字典等。可以使用它们来存储和操作不同类型的数据。 此外,Python提供了丰富的运算符,如算术运算符、比较运算符和逻辑运算符等,用于执行各种数学和逻辑运算。 在Python中,通过使用条件语句(如if语句)和循环语句(如for循环和while循环),可以根据不同的条件执行不同的代码块或者重复执行某段代码。 同时,Python还具有众多内置函数和标准库,方便开发者进行各种操作,如输入输出、文件操作、数学运算和日期处理等。 总而言之,Python基础语法简洁明了,易于上手,具有丰富的数据类型和运算符,以及强大的流程控制能力。这些特性使得Python成为广泛应用于数据分析、人工智能、Web开发等领域的编程语言。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值