import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
import re
plt.style.use("ggplot")
显示中文:plt.rcParams['font.sans-serif']=['SimHei'] #plt.rcParams['font.sans-serif']=['Arial Unicode MS'] mac
显示负号: plt.rcParams['axes.unicode_minus']=False
pd.options.display.max_rows = 1000 #最大显示数,有了这个就不会只显示一小块数据了
pd.set_option('display.max_rows', None) #同上,要检验
data_list = []
for i in range(1,8):
try:
data = pd.read_csv(f'./fangchan/lianjia{i}.csv',encoding = 'gbk')------很少用gbk
except:
data = pd.read_csv(f'./fangchan/lianjia{i}.csv')
finally:
data_list.append(data)
np.array是可以运算的,要注意
属于np的方法
a.ndim
a.dtype
a.shape=2,5
a=np.zeros(10) 或 b=np.ones((2,5))
a=np.empty((2,3,4)) 2个3行4列 的“随机”
np.unique(a) 唯一值
np.arrange(10)
np.arage(24).reshap(2,3,4)
np.linspace(0,10,10). 第三个参数不写就是50
np.maximum(a,b) 最大值——要比较,要有两个数组对比
np.max(a)
np.substract(a-b) 减
np.mean(a). 均值。 同a.mean()
np.sum() 和
np.std() 方差
np.median() 中位值
a.sort() 直接生效。 np.sort(a) a不直接变化
np.argsort(a) 返回索引
np.argmax(a) 最大值所在索引
np.where() 条件索引
random正态分布随机数
np.random.randn(10) 长度为10正态分布随机数
np.random.randn(3,4)
np.random.nornal((size=3,4)) 正态分布的随机数————均值为0方差为1——标准正态分布随机数
np.random.randint(1,10,(3,4))
np.random.permutation(len(a)) 乱序
np.random.choice([1,2,3,4,5,6] 随机选择
np.random.seed(5)然后np.random.random.randn(3,5)
np.random.randn(10).cumsum(). 累加(matplotlib节选)
np.linspace
np.save('lesson1',a)
np.load('lesson1.npy')
np.savetxt('lesson1',a)
np.loadtxt('lesson1)
matplotlib
plt.show()和%matplotlib inline_新版本不用
plt.plot([2,4,7,9]) 或plt.plot(x,y)
plt.legend()配合. plt.plot(x,y,label='A') 显示label用legend()
plt.plot(color='r',).
linestyle='-.',linewidth=5,marker='^' 参数
plt.xlabel('age') 标记x轴名
plt.title('title',y='1.03') 距离长短
plt.xlim(0,10). plt.ylim(0,5) 轴的取值
plt.xticks([0,4,8],['出生','baby','child']) 标记取值名 yticks()同理
plt.grid() 网格
plt.style.use('ggplot')
import seaborn直接这样写就是引入了
plt.bar(x,y,bottom=y)用y做底和别的图对比————有两个图的情况
plt.barh(x,y,) 横向
直方图
plt.figure(figsize=(10,10))视始化一张画布 默认会有还给我
直方图plt.hist (data,bins=40)里面的bins是分成多少份
箱形图
箱形图的异常值:这个值+大于上四分位+1.5倍上四分位-下四分位,或:小于下四分位-上四分位-下四分位的1.5倍
线形图plt.scatter() 里面的s= 是管点的大小,要留意
饼图
plt.pie(size,labels=labels). size=[10,20,40,30] labels=["微软","谷哥","雅虎","亚马逊"]
plt.pie(size,labels=labels,autopct="%1.1f%%",explode=explode,startangle=90). explode是突出=(1,0,0,0)
plt.subplot(2,1,1)先规划图的组成
plt.plot(x,y)画第一个
plt.subplot(2,1,2)先规划图的组成
plt.plot(x,y2)画第一个
plt.suptitle('')总标题
plt.figure(figsize=(10,8),dpi=300)分辨率
plt.rcParams['font.ans-serif']=['SimHei']
显示中文:plt.rcParams['font.sans-serif']=['SimHei'] windows
plt.rcParams['font.sans-serif']=['Arial Unicode MS'] mac
显示负号: plt.rcParams['axes.unicode_minus']=False
plt.xticks([],[],rotation=30)让字进行旋转
plt.savefig('位置/xxx.jpg')
在解释器中,如果想让图片显示出来,可能要先保存图片再.show()才行
二课
np.arrange(10)
np.arage(24).reshap(2,3,4)
np.linspace(0,10,10)
a.astype(np.int16)__改变类型
高纬切片a[0][2][1]常见的是a[0,2,1]
a.T转置,改变原有结构为相反结构
7课 说白了np.array用来创造数组
np.linespace(0,10,100) 产生0-10之间均匀分布的100个数字 不写100的话就50个
dtype=np.float32 unit8是图片一般0-255 unit16 32 64 无符号整型
a.astype(np.int16)
8课
切片如果改变,原来的数组的值也会改变,因为数据量太大了。占内存。所以用copy方法在内存中搞 .copy()深复制
切片简写a[0][2][1]简写成a[0,2,1]
a[:,2,1]维度全取,第二行,第一个
9课
a[a>10] 里面是布尔,再选数组
a[(a>5)&(a<20)]
10课
标量加最简单,同形加是对应元素相加,相同形状。行相加,列相同行不一,就让那一行给他们轮流发生关系
广播复用一行对应对方两行
a.reshape(2,1) 原来是[0,1] 变成 ([0],[1] )
a.T转置,将2X5变成5X2
np.append(b,[[5,6]],axis=0)添加——————二维也要以二维的形式添加进去
11课
连接用元祖np.concatnate((a,b))由数组组成的元祖进行合并,我理解所谓合并就是将两个数组合并
如果都是一行就合在一起了,
合并还用stack方法np.stack([1,2,3,4],[5,6,7,8])每一个数祖做为元素合并
concatnate 不增加维度,而stack是堆起来
添加是用np.append(a,5) 但是:高围数组用append时如果不指定轴会让其合并,并且展开。需要注意的一点 列添加元素,再看看,值得复习一下也就是加一列
np.append(a,[[5],[6]]) 这就是给每行的最后边加上一个值
np.unique(a)
12课
np.mean(a) np.sun(a) a.sun是对象方法
a.mena(axis=1)
第一次讲方差
13课
np.random.randn(10)正态分布的随机数 np.random.rand——————20课讲,0-1的随机数
a=np.sort(a)要先赋值才等于a.sort____顶级方法改变不了原值
a.reshape(2,5)等价于 a.shape=2.5
np.argsort(a)返回排序后的索引
np.argmax(a)返回最大值 索引
np.where(a>2)___》2的索引 不常用,一般用a[a>2]
np.where(cond,a,b)______值 得一记,当cond为True时从a取,false从b取
(a>2).sun() 算出a>2的数量
14课
np.random.randn(10)正态分布随机数
np.random.normal(size=(3,4))标准分布随机数_______均值为0方差为1
np.random.randint(1,10,(3,4))最小值 ,最大值 ,3行4列正值 ——————自然数随机数
np.random.permutation(len(a)) 乱序 生成一个从0到这个值之音的一个乱序的值
np.random.choice([1,2,3,4,5,6]) 随机选一个数 可以再加一个参数size=2每次取出2个
np.random.seed(5) np.random.randn(3,4) 前面加上了seed后面再运行就是一样的结果了
np.save(11.txt,a) np.load(全路径)
np.savetxt(11.txt,a) 保存为文本形式 np.loadtxt(11.txt,a)
15课 ——————marker,linewidth,color
plt.plot(x,y label='a公司')
plt.legend()显示label的字样————不然没有
plt.plot(x,color='r',linestyle='-.',linewidth=5,marker='^')
plt.xlabel('age')给x加标签
plt.title('student')
plt.xlim___x轴的取值范围
plt.ylim___y轴的取值范围
x.ticks([0,4,8],['baby','young','adult'])取值标记——————在哪些关键位置设置名字
18课
plt.grid()加网格
plt.style.use('ggplot')
import seaborn直接这样写就是引入了
19课
plt.bar(x,y,bottom=y)用y做底和别的图对比————有两个图的情况
plt.figure(figsize=(10,10))视始化一张画布 默认会有还给我
直方图plt.hist (data,bins=40)里面的bins是分成多少份
箱形图的异常值:这个 值+大于上四分位+1.5倍上四分位-下四分位,或:小于下四分位-上四分位-下四分位的1.5倍
线形图plt.scatter() 里面的s= 是管点的大小
20课
堆积图(占有率)
plt.stackplot( comp,y1,y2,y3,y4,labels=列表,就显示名字了) plt.xticks([1,2,3,4],['2011','2012','2013','2014'])加上y轴的名字
饼图:plt.pie
labels=['apple','micro','yahoo','google']
size=[15,30,45,10]
explode=(0.1,0,0,0)
plt.pie(size,labels=labels,autopct="%1.1f%%",explode=explode,startangle=90)
列宽为1,小数点后为1,f为float
22课
plt.subplot
plt.suptitle('')总标题
24课
plt.rcParams['font.ans-serif']=['SimHei']
显示中文:plt.rcParams['font.sans-serif']=['SimHei'] 显示负号: plt.rcParams['axes.unicode_minus']=False
plt.xticks([],[],rotation=30)让字进行旋转
plt.savefig('位置/xxx.jpg')
在解释器中,如果想让图片显示出来,可能要先保存图片再.show()才行