目标:掌握python,进行数据处理、统计分析、回归建模和数据可视化。
教材:《大数据分析务实初级教程(python)》
使用excel进行数据分析具有一定的局限性,不易处理大规模数据、效率比较慢,美观性和创新性不足
不受数据规模的约束,能处理大规模数据
sklearn库提供了丰富的数据挖掘和人工智能方法,为使用者分析各种场景提供方法支持
自动数据分析能够显著提升工作效率
能够绘制各种前沿的数据图表
在海量数据采集方面也有独特的优势
数据采集-数据整理和存储-数据分析和可视化-数据报表和总结
描述性分析->发生了什么
诊断性分析->为什么会发生
预测性分析->可能会发生什么
处方性分析->该做些什么
应用场景-电商平台,银行金融机构,房产交易平台,工业互联网
Anaconda专门用于数据科学运算的python发行版软件工具,集成了主流的第三方库
网址:https://www.anaconda.com/
Jupyter Notebook开发环境
Spyder开发环境
变量直接赋值,语句无需分号
print("hello")
:hello
a=5
print(a+6)
:11
a='5'
print(a+'6')
56
#该处为字符型变量
标识符
数据类型:整型、浮点型、字符串、
布尔型:用于判定真假,判别结果为真时,返回True 反之返回False
输入:input
输出:print
name=intput("请输入姓名:")
print(name)
format输出格式设置:
x=3,1415
print("保留一位小数后为:{:.1f}".format(x))
#使用{}作为占位符,输出的时候将format函数括号中的内容填充到占位符中,整型和字符型按原样输出,浮点型数据需要考虑小数位数,在{}中设置,“:.1f”表示四舍五入后保留一位小数输出
有多个变量要输出的时候,可以设置多个占位符{}
代码的注释:#
(1)列表
顺序结构的一种,列表中的每个元素最多只有一个前驱和一个后驱
语法:[元素1,元素2,···,元素N]
列表中的元素可以是相同的类型也可以是不同的类型[“苹果”,10,“菠萝”,20]
当往列表放入数据的时候,python用索引来标记要放入的位置,从0开始
list[0]="苹果"#把苹果放入list的9号位置
apple=liat[0]
fruit=["苹果","banana","orange",20]
fruit[0]="peter"
print(fruit)
连续获取几个元素,需要使用如下的切片运算符:
切片不包括索引为3的元素
list=["苹果","banana","orange",20]
list2=list[1:3]
print(list2)
['banana', 'orange']
(2)字典
映射结构,把一个值映射到另一个值,跟手机通讯录很相似,Python字典是一个特殊的通讯录,不允许里面有两个人的名字是相同的
由键和值构成,其中键表示查找的依据,值表示查找的结果
python的语法:
{key1:value1,key2:value2···}
addressBook={'张三':'1391653471',';李四':'18552233763'}
addressBook['George']='23445435634'
#输入键可以更改对应的值
(3)元组
元组列表相似,列表的大部分方法在元组上也可以使用,只是元组是不可以修改的,创建列表是方括号,元组是圆括号。
t1=()#创建空元组
t2=(1,2)#创建数字元组
t3=("a","b","c")#创建字符串元组
t4=(1,"b","c")
t5=(1,)
(4)字符串
一类特殊的字符集合,由单个或多个字符组合而成,长度可以由len方法获取,在字符串里,通常使用索引来标识字符所在的位置,第一个字符的索引值为0,最后一个字符的索引值为-1
psw="123dfsdf34-s"
len(psw)
结果为12
psw[0]
'1'
psw[-1]
's'
±*/加减乘除
幂次运算,2**3=8
%求余运算,2%3=2
// 求整除数,计算两个整数相除的整数值 5//2=2
: > < == != >= <=
and or not
(1)if/else/elif条件语句
判断语句中,空列表/空元组/空字典/数字0/空字符串都会在判断条件中被自动转换为布尔值False
a=0
if a:
print("a为True")
print("a为False")
(2)for 循环语句
for 遍历变量 in 遍历的对象
代码块
animals=['cat','dog','panda']
for w in animals:
print(w)
if w=='cat'
print(w)
(3)while循环语句
i=1
while(i<5):
print(i)
i=i+1
(4)range()函数
for i in range(5):
print(i)
结果:0 1 2 3 4
animals=["dog","cat","panda","bird"]
for i in range(3):
print(animals[i])
结果:
dog
cat
panda
(5)跳出循环
break语句:直接跳出循环,结束循环
continue语句:结束当前循环,直接进入下一次循环
(1)函数
函数是一个在程序中可以重复使用的代码块,并且这组代码块可以实现一个独立的功能,在定义好函数后,该函数就可以在程序中任意需要的位置被调用
函数由函数名、参数、函数体、返回值组成,其中函数名和函数体是必须的
函数可以没有参数,也可以有一个或多个参数
def plus(x,y):
s=x+y
return s
def printhello():
print("hello")
def printName(name):
print("Welcome"+name)
def printS(x,y):
s=x+y
return(s)
printhello()
printName("TJJ")
printS(1,2)
hello
WelcomeTJJ
3
(2)类
类是面向对象的一个核心要素,在编程的过程中,对于有相同属性的方法和对象,为了避免重复定义,可以将这些对象归纳成一个类
类的基本结构为:
class 类名(参数):
全局属性
类方法代码块
#编写水果类
class Fruit():
def __init__(self,name,color):
self.name=name
self.color=color
def pickup(self,season):
print("{}在季节收获".format(self.name,season))
#以苹果为对象,实例化水果
Apple=Fruit("apple","red")
#调用Apple类的pickup方法
Apple.pickup("秋天")
apple在季节收获
有了模块,文件内部的方法或者变量可以被外部访问使用,而不是仅仅局限于文件内部使用,对象的抽象和复用更为通用,
调用本地模块和包的基本格式为:
import 模块名/包名
from 模块/包 import 属性/方法
使用random模块产生随机数,并存入列表:
import random
data=[]#定义一个空列表
for i in range(10):
#使用random里的randint方法生成随机数存入value
value=random.randint(0,100)
#将该数存入data列表中,append方法存入空列表
data.append(value)
print(data)
[28, 71, 73, 59, 68, 94, 77, 35, 25, 82]