python 中常用可视化工具库

a、Numpy常用属性及方法

为什么用它:它可以方便的使用数组,矩阵进行计算,包含线性代数。傅里叶变换、随机数生成等大量函数(处理数值型的数组)

import numpy as np

Numpy生成array的属性:

import numpy as np

x=np.array([1,2,3,4,5,6,7,8]) # 一维

x.shape  #(8,) 

X=np.array([[1,2,3,4],[5,6,7,8]]) # 二维数组

X.shape  #(2,4)

#规律:从外往里数元素个数

操作函数

import numpy as np
A=np.arange(10).reshape(2,5) # np.arrage(10)--> array([0,1,2,3,4,5,6,7,8,9])
A.shape # (2,5) A=[[0,1,2,3,4],[5,6,7,8,9]]
test1=A+1 # array([[1,2,3,4,5],[6,7,8,9,10]])
test2=A+3 #array([[0,3,6,9,12],[15,18,21,24,27]])
#......
B=np.arange(1,11).reshape(2,5)
test3=A+B #test3=[[1,3,5,7,9],[11,13,15,17,19]]
test4=B-A #test4=[[1,1,1,1,1],[1,1,1,1,1]]

索引查询

# array[:10] 取前10个数
# array[-3:] 去最后3个数
# import numpy as np
C=np.random.randint(1,100,10)
#C[-3:]=10#[77 1 30 3 31 10 92 10 10 10] # 获取数组中最大的前N个数字、
#argsort() 传回排序后的索引下标
print(C[C.argsort()])#排序[ 5 11 31 39 53 53 85 88 95 99]
print(C[C.argsort()[-3:]])#取最大的3个元素[88 95 99]

Numpy中的数学统计函数

	import numpy as np

    t = np.array([1, 2, 3, 4, 5])
t1=t.sum()#15求和
t2 = t.mean()#3.0 平均值
t3=t.min()#1 最小值
t4=np.median(t) #3.0 中位数
t5 = t.var() # 2.0 方差
t6=t.std()#1.4142135623730951 标准差

Numpy的向量化操作

	t = np.array([1, 2, 3, 4, 5])
n=t[t>3].size #注意!没有括号 当然len(t[t>3])也能实现,但是t[t>3].size性能更好,所有时间更短
print(n)

Numpy数组合并

	t1=np.array([1,2,3,4])
#t2=np.array([5,6,7,8])
t2=np.array([[5,6,7,8],
[9,10,11,12]])
t3=np.vstack([t1,t2]) #[[1 2 3 4],[5 6 7 8]]
#t4=np.hstack([t1,t2]) #[1,2,3,4,5,6,7,8]
#注意:
#1.vstack:使用是必须保持每个一维数组里的元素里的个数相同
#即:t1=np.array([1,2,3,4])
# t2=np.array([[5,6,7,8],
# [9,10,11,12]])
# 这种情况下使用vstack会报错
#ValueError: all the input array dimensions for the concatenation axis must match exactly, but along dimension 1, the array at index 0 has size 3 and the array at index 1 has size 4
#2.同理:hstack使用是必须保持每个二维数组里的一维数组个数相同
#即:t1=np.array([1,2,3,4])
# t2=np.array([[5,6,7,8],
# [9,10,11,12]])
# 此时np.hstack([t1,t2]) 会报错
#ValueError: all the input arrays must have same number of dimensions, but the array at index 0 has 1 dimension(s) and the array at index 1 has 2 dimension(s)

案例二:

	t1=np.array([[1,2,3,4],
[5,6,7,8]])
t2=np.array([[5,6,7,8],
[1,2,3,4]])
t3=np.vstack([t1,t2])
t4=np.hstack([t1,t2])
print(t3)
#[[1 2 3 4]
#[5 6 7 8]
#[5 6 7 8]
#[1 2 3 4]]
print(t4)
#[[1 2 3 4 5 6 7 8]
# [5 6 7 8 1 2 3 4]]

b、pandas

为什么用pandas:它能帮我们处理数值(基于numpy)和字符串及时间序列

pandas的常用方法

Series与DataFrame

	data1=[{"name":"黄勇","age":20,"sex":"男"},{"name":"小勇子","age":21,"sex":"男"}]
data2={"name":["hy","xyz"],"age":[20,19],"sex":["男","男"]} r1=pd.Series(data1)
"""0 {'name': '黄勇', 'age': 20, 'sex': '男'}
1 {'name': '小勇子', 'age': 21, 'sex': '男'}
dtype: object
"""
df1=pd.DataFrame(data1)
'''
name age sex
0 黄勇 20 男
1 小勇子 21 男
'''
r3 = pd.Series(data2)
'''
name [hy, xyz]
age [20, 19]
sex [男, 男]
dtype: object
''' df2 = pd.DataFrame(data2)
'''
name age sex
0 hy 20 男
1 xyz 19 男
''' r5=np.vstack([df1,df2])
'''
[['黄勇' 20 '男']
['小勇子' 21 '男']
['hy' 20 '男']
['xyz' 19 '男']]
''' #print(df1["name"].values.reshape(-1, 1).shape) #(2,1) [[""],[""]] r6=np.hstack([df1["name"].values.reshape(-1,1),df2["age"].values.reshape(-1,1)])
'''
[['黄勇' 20]
['小勇子' 19]]
''' #选择多少行多少列
'''
data.csv
是否客栈,评论数,房间数,酒店总间夜
0,686,127,223
0,354,128,64
1,58,50,3
0,65,168,43
0,303,97,69
0,31,314,229''' data= pd.read_csv("data/data_hotel_mult.csv")
x=data.iloc[:,:-1]#取所有行到最后一列,不包含最后一列 '''
是否客栈 评论数 房间数
0 0 686 127
1 0 354 128
2 1 58 50
3 0 65 168
4 0 303 97
5 0 31 314
'''

c、sklearn

逻辑回归

d、matplotlib

为什么用它:它能将数据进行可视化,将数据更 直观的呈现,使数据更加客观,更具说服力

使用:

# 导包
from matplotlib import pyplot as plt

绘图类型:

函数名称 描述
Bar 绘制条形图(柱状图)
Plot 在坐标轴上画线或者标记
Scatter 绘制x与y的散点图
hist 绘制直方图

画图步骤:

	#修改matplotlib默认的字体(需要显示中文就设置)
matplotlib.rc("font",family="KaiTi",weight="bold",size="18") a = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
b= [0,0,0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,1,1,1]
plt.figure(figsize=(20,8)) x=[i for i in range(11,31)]
#设置图名称
plt.title("我与同桌女朋友个数对比")
#设置轴名称
plt.xlabel("年龄")
plt.ylabel("女朋友个数")
#设置网格alpha为不透明度
plt.grid(alpha=0.3)
#label设置这条折线的图例名称
plt.plot(x,b,label="自己",lineStyle="dashed") #折线图
plt.plot(x,a,label="同桌")
#图例(显示图例,必须放在plot下)
plt.legend(loc="upper left") # 设置x轴刻度
_xtick_labels = [f"{i}岁" for i in x]
plt.xticks(x,_xtick_labels) plt.show()

各图中属性配置

plot()函数是绘制二维图形的最基本函数。用于画图它可以绘制点和线,语法格式如下:
# 常用语法
plot(x, y,ls='--',c='r',lw='12.5')
#解释:ls=lineStyle,c=color,lw=lineWidth
#有几条线,就调用几次plot()

marker 可以定义的符号如下:

标记 符号 描述
"."
"None", " " or "" 没有任何标记
"*" 星号

线类型:

线类型标记 描述
'-' 实线
':' 点虚线
'--' 破折线(dashed)
'-.' 点划线

颜色类型:

颜色标记 描述
'r' 红色
'g' 绿色
'b' 蓝色
'c' 青色
'm' 品红
'y' 黄色
'k' 黑色
'w' 白色

柱状图:

#水平柱状图:
plt.bar(x,y,width=0.8,color='r')
#垂直柱状图:
plt.barh(x,y)

散点图:

color='r' #所有点同一个颜色
color=['r','b'...] #定义每一个点的颜色
plt.scatter(x,y,c=color,s=30.4)
解释:s=size

直方图:

a=[131,98,125, 131, 124, 138, 131, 117, 128, 108, 135, 138, 131, 102, 107, 114, 119,128,121]
#组距
d=4
m=max(a)
n=min(a)
#画布
plt.figure(figsize=(20,8),dpi=80)
plt.hist(a)
plt.grid(alpha=0.3)
#设置刻度
plt.xticks(range(n,m+d,d)) plt.show()

最新文章

  1. [原创]关于ORACLE的使用入门
  2. SQL语句 分页实现
  3. IOS 登陆界面的简单编写(通过NSNotificationCenter)
  4. jQuery 效果 - animate() 方法
  5. @interface java注解
  6. resid入门笔记(二)
  7. PHP面向对象(OOP):__set(),__get(),__isset(),__unset()四个方法的应用
  8. 《程序设计中的组合数学》——polya计数
  9. eclipse配置maven + 创建maven项目
  10. Python学习笔记——基础篇【第五周】——os模块和sys模块
  11. sql 查看语句的性能
  12. CSS3基础(4)——CSS3 渲染属性
  13. Scipy教程 - 优化和拟合库scipy.optimize
  14. synchronize 关键字原理
  15. callback function(回调函数) - 术语
  16. SimpleCursorAdapter使用代码
  17. bzoj3514(主席树+lct)
  18. WINDOWS 端口查看
  19. 九度OJ1153-括号匹配-栈的应用
  20. rails 数据迁移 -migration

热门文章

  1. 谷歌、微软、Meta?谁才是 Python 最大的金主?
  2. vivo浏览器的神奇操作
  3. Jmeter中通过V函数使Foreach控制器有多个输入变量
  4. 命令查询职责分离 - CQRS
  5. js day04 实参与形参个数不一致
  6. 看完这篇,还不懂JAVA内存模型(JMM)算我输
  7. cesium加载倾斜摄影,添加billboard并注册点击事件
  8. Spring 6 源码编译和高效阅读源码技巧分享
  9. C#-将进程注册为子进程,父进程崩溃的时候子进程也随之退出的方案和实例
  10. Redis的数据持久化