笔记
文章平均质量分 56
gua_niu123
在孤独的生活里,做好一件事。
展开
-
linux 运行python文件并且打印日志
场景:Python程序执行需要很长的时间或者需要一直在跑,或者需要打印并记录很多信息 策略:后台运行程序,然后把打印信息保存在指定的文件中,等程序运行结束后,再检查输出日志或者实时观察日志。 1、启动命令: 1、一般使用 nohup python -u Job.py > log.log 2>&1 & 2、只记录异常日志(推荐) # nohup python -u Job.py >/dev/null 2&g...原创 2021-03-25 16:50:29 · 2216 阅读 · 0 评论 -
sql常用函数
转载自:https://blog.csdn.net/mrtwofly/article/details/53939400一、数学函数ABS(x) 返回x的绝对值 BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制) CEILING(x) 返回大于x的最小整数值 EXP(x) 返回值e(自然对数的底)的x次方 FLOOR(x) &nb...转载 2021-03-13 09:19:07 · 146 阅读 · 0 评论 -
SVM算法详解
SVM 是一个非常优雅的算法,具有完善的数学理论,虽然如今工业界用到的不多,但还是决定花点时间去写篇文章整理一下。1. 支持向量1.1 线性可分首先我们先来了解下什么是线性可分。在二维空间上,两类点被一条直线完全分开叫做线性可分。严格的数学定义是: 和 是 n 维欧氏空间中的两个点集。如果存在 n 维向量 w 和实数 b,使得所有属于 的点 都有 ,而对于所有属于 的点 则有 ,则我们称 和 线性可分。 1.2 最大间隔超平面从二维扩展到多维空间中时,将 和 完全正确地划分开的 .转载 2021-03-12 23:34:44 · 11127 阅读 · 0 评论 -
Seaborn常见绘图
以前粗略的学习过Matplotlib绘图、Pandas绘图(这里是pandas的常见绘图总结),但是都未深入的去学习过,一遇到问题就翻文档,效率低下。听“他们”说matplotlib中的seaborn绘图很好看而且实用,所以,这里系统的总结一下seaborn常见的图形绘制。其目的也是很简单,方便自己和给大家提供一些帮助(由于英文很菜,...转载 2021-03-11 23:16:45 · 987 阅读 · 0 评论 -
SQL数据库查询练习题
一、 设有一数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)。四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表(一)~表(四)所示。用SQL语句创建四个表并完成相关题目。 &nb...转载 2021-03-10 22:13:51 · 1438 阅读 · 0 评论 -
朴素贝叶斯分类器 详细解析
1 贝叶斯决策论贝叶斯决策论(Bayesian decision theory)是概率框架下实施决策的基本方法。对分类任务来说,在所有相关概率都已知的理想情况下,贝叶斯决策轮考虑如何基于这些概率和误判损失来选择最优的类别标记。1.1 后验概率P{H0|x}是给定观测值x条件下H0出现的概率,统称为后验概率For example:假设一个学校里有60%男生和40%女生。女生穿裤子的人数和穿裙子的人数相等,所有男生穿裤子。一个人在远处随机看到了一个穿裤子的学生。那么这个学生是女生的概率是多少?使用转载 2021-03-05 23:42:33 · 1726 阅读 · 0 评论 -
python sklearn库(4)
数据集拆分在得到训练数据集时,通常我们经常会把训练数据进一步拆分成训练集和验证集,这样有助于我们模型参数的选取。train_test_split是交叉验证中常用的函数,功能是从样本中随机的按比例选取train data和testdata,形式为:X_train,X_test, y_train, y_test = cross_validation.train_test_split(train_data,train_target,test_size=0.4, random_state=0)注意:tr转载 2021-03-04 22:57:56 · 308 阅读 · 1 评论 -
python sklearn库(3)
数据预处理数据预处理阶段是机器学习中不可缺少的一环,它会使得数据更加有效的被模型或者评估器识别。下面我们来看一下sklearn中有哪些平时我们常用的函数:StandardScalerMaxAbsScalerMinMaxScalerRobustScalerNormalizer等其他预处理操作对应的有直接的函数使用:scale(),maxabs_scale(),minmax_scale(),robust_scale(),normaizer()sklearn.preprocessing.scale转载 2021-03-03 20:38:16 · 236 阅读 · 1 评论 -
python sklearn库(1)
sklearn官方文档的内容和结构sklearn官方文档的内容定义:针对经验E和一系列的任务T和一定表现的衡量P,如果随着经验E的积累,针对定义好的任务T可以提高表现P,就说明机器具有学习能力。sklearn官方文档结构由图中,可以看到库的算法主要有四类:分类,回归,聚类,降维。其中:常用的回归:线性、决策树、SVM、KNN ;集成回归:随机森林、Adaboost、GradientBoosting、Bagging、ExtraTrees常用的分类:线性、决策树、SVM、KNN,朴素贝叶斯;集转载 2021-02-01 22:45:19 · 447 阅读 · 1 评论 -
监督学习---线性回归
1.监督学习(supervised learning):在有标记样本上建立机器学习模型数据有标签、一般为回归或分类等任务监督学习三要素:标注数据 => 学习模型 => 损失函数即:标识类别信息的数据=> 如何学习得到映射模型 => 如何对学习结果进行度量(预测值与真实值的差值)分类和回归的区别:分类:要预测的目标函数是离散的;回归:要预测的目标函数是连续的回归:5. 线性回归:y=wx+b(1)何为线性回归:=>m个属性样本=>试图从样本中获得预转载 2021-01-29 22:04:05 · 410 阅读 · 0 评论 -
决策树处理缺失值和连续值
1.连续值的处理方法对于连续属性,不能直接根据连续属性的可取值对节点进行划分,可以使用二分法对连续属性进行划分。对于连续属性a,我们可考察包括 n-1 个元素的候选划分集合(n 个属性值可形成 n-1 个候选点): 利用每个候选点对数据进行划分,得到两个子集,计算信息增益,取最大的信息增益对应作为该属性的信息增益。举例:对于数据集中的属性“密度”,在决策树开始学习时,根节点包含的17个训练样本在该属性上取值均不同。该属性的候选划分点集合包括16个候选值:T密度 = {0.244,0.2原创 2021-01-27 22:21:50 · 1480 阅读 · 0 评论 -
C4.5和CART决策树对比
前面详细讲解了ID3决策树。现在来聊一聊CART、C4.5决策树:CART与ID3和C4.5相同都由特征选择,树的生成,剪枝组成。但ID3和C4.5用于分类,CART可用于分类与回归。CART是在给定输入随机变量X条件下输出随机变量Y的条件概率分布,与ID3和C4.5的决策树所不同的是,ID3和C4.5生成的决策树可以是多叉的,每个节点下的叉树由该节点特征的取值种类而定,比如特征年龄分为(青年,中年,老年),那么改节点下可分为3叉。而CART为假设决策树为二叉树,内部结点特征取值为”是”和”否”。左分转载 2021-01-26 22:38:05 · 1628 阅读 · 0 评论 -
Anaconda常用命令
1 管理conda(1) 检查condaconda --version Conda会返回你安装Anaconda软件的版本。(2) 升级condaconda update conda Conda会检查可升级版本,并同时显示可升级的包。2 管理运行环境(1) 创建新运行环境conda create --name snowflakes biopython 创建名为snowflakes的新运行环境,其中包含包biopython(2) 激活新运行环境Windows: acti原创 2021-01-26 20:47:11 · 873 阅读 · 0 评论 -
pandas日期字段处理
在做数据处理的过程,包括数据过滤、数据汇总计算等都会经常用到pandas从日期属性中提取年月日。pandas做数据处理分析也不例外。1、pandas导入数据(以导入csv文件为例)import numpy as npimport pandas as pdimport warningswarnings.filterwarnings("ignore")#查看某个函数、方法的详细使用。如输入pd.read_csv,然后按shift+tab(4次)df = pd.read_csv(r"spider.c转载 2021-01-18 19:35:47 · 1601 阅读 · 0 评论 -
python数据分析——pyecharts其他图像
1 仪表盘from pyecharts import charts # 仪表盘gauge = charts.Gauge()gauge.add('Python小例子', [('Python机器学习', 30), ('Python基础', 70.), ('Python正则', 90)])gauge.render(path="./data/仪表盘.html")print('ok')仪表盘中共展示三项,每项的比例为30%,70%,90%,如下图默认名转载 2021-01-14 22:31:22 · 580 阅读 · 0 评论 -
python数据分析——pyecharts地图全解
地图文件被分成了三个 Python 包,分别为:全球国家地图: echarts-countries-pypkg (1.9MB)中国省级地图: echarts-china-provinces-pypkg (730KB)中国市级地图: echarts-china-cities-pypkg (3.8MB)直接使用python的pip安装:选择自己需要的安装的地图$ pip install echarts-countries-pypkg$ pip install echarts-china-provi转载 2021-01-13 22:55:05 · 7158 阅读 · 5 评论 -
python数据分析——pyecharts折线图全解
导入from pyecharts import Linefrom pyecharts import WordCloudfrom pyecharts import EffectScatter, Overlapx_attr = ["1月", "2月", "3月", "4月", "5月", "6月"]data1 = [5, 20, 36, 10, 75, 90]data2 = [10, 25, 8, 60, 20, 80]基础折线示例图# 折线示例图line = Line("折线示例图")转载 2021-01-12 22:18:46 · 3501 阅读 · 1 评论 -
python数据分析——pyecharts柱状图全解
一、pyecharts简介pyecharts主要基于Web浏览器进行显示,绘制的图形比较多,包括折线图、柱状图、饼图、漏斗图地图和极坐标图等。使用pyecharts绘图代码量很少,但绘制的图形比较美观。pyecharts 分为 v0.5.X 和 v1 两个大版本,v0.5.X 和 v1 间不兼容,v1 是一个全新的版本v0.5.X支持 Python2.7,3.4+,经开发团队决定,0.5.x 版本将不再进行维护,0.5.x 版本代码位于 05x 分支v1仅支持 Python3.6+,新版本系列将从转载 2021-01-11 22:36:17 · 4623 阅读 · 1 评论 -
pandas聚合函数、透视表、交叉表、表格合并常见操作
聚合函数numpy、pandas使用的统计方式在数组中经常使用的聚合方式data[['counts', 'ches_name']].agg([np.mean, np.std])agg({'xx':np.mean, 'xx2':[np.sum, np.std]})在pandas或者numpy中没有现成的函数可以使用,可以使用transform自定义函数如: 将指定列的全部数据 * 2方式一data['counts'].transform(lambda x: x*2)方式二:按照函数原创 2021-01-10 21:59:59 · 1417 阅读 · 0 评论 -
pandas 数据清洗
#数据清洗 缺失值 异常值 重复值import pandas as pd# 一: 检测与处理缺失值得操作:data = pd.read_excel('人事终表.xlsx')# print(data)#检测是否为空值 1 isnull 判断是空值的方法 是空值返回True 否则为Flase # 2 notnull 与isnull 返回形式相同# notnull().sum() 相当于count# pri原创 2021-01-08 20:16:15 · 528 阅读 · 0 评论 -
mysql 分组查询
-- SELECT stu_gender,GROUP_CONCAT('stu_name') FROM student GROUP BY stu_gender-- SELECT stu_gender AS gender,GROUP_CONCAT('stu_name') FROM student GROUP BY stu_gender ;-- SELECT stu_gender AS gender,stu_age,COUNT('stu_name') from student GROUP BY stu_ge原创 2021-01-05 22:21:29 · 430 阅读 · 0 评论 -
pandas 基础操作(3)
#聚合函数# (1)numpy/pandas 统计分析方法# (2)agg# (3)transform 转换 ufunc 在pandas 或者numpy中没有现成的聚合函数可以使用# 可以通过transfrom自定义函数import pandas as pdimport numpy as np# data = pd.read_excel('meal_order_detail.xlsx')# data = data['counts'].transform(lambda x:x*2)#原创 2021-01-04 22:38:43 · 447 阅读 · 0 评论 -
pandas基础操作(2)
# ## 一、时间处理:# In[4]:place_order_time = data['place_order_time'].astype('str')# ### 1. 将字符串类型转为标准时间格式# In[5]:data['place_order_time'] = pd.to_datetime(place_order_time)print(data['place_order_time'])# ### 2.时间类型提取# ser.dt.时间属性:# 年--year原创 2021-01-03 22:34:43 · 586 阅读 · 0 评论 -
pandas分组操作
在日常的数据分析中,经常需要将数据根据某个(多个)字段划分为不同的群体(group)进行分析,如电商领域将全国的总销售额根据省份进行划分,分析各省销售额的变化情况,社交领域将用户根据画像(性别、年龄)进行细分,研究用户的使用情况和偏好等。在Pandas中,上述的数据处理操作主要运用groupby完成,这篇文章就介绍一下groupby的基本原理及对应的agg、transform和apply操作。为了后续图解的方便,采用模拟生成的10个样本数据,代码和数据如下:company=["A","B","C"]转载 2020-12-31 00:09:35 · 2317 阅读 · 1 评论 -
pandas基础操作(1)
pandas1.表格数据操作;【增删改查】2.实现多个表格的处理;3.数据清洗操作: 缺失值,重复值,异常值,数据标准化,数据转换的操作;4.实现excel的特殊操作:生成透视表,交叉表;5.完成统计分析;import pandas as pdimport numpy as np一、构建dataframe创建方法一:df = pd.DataFrame(data=[['ss',20, '男','0831'],['lx',20, '女','0830'],['lx',22, '女','083原创 2020-12-29 21:23:54 · 546 阅读 · 0 评论 -
matplotlib绘图——柱状图
1. 基本的柱状图import matplotlib.pyplot as plt data = [5, 20, 15, 25, 10] plt.bar(range(len(data)), data)plt.show()bar(left, height, width=0.8, bottom=None, **kwargs)事实上,left,height,width,bottom这四个参数确定了柱体的位置和大小。默认情况下,left为柱体的居中位置(可以通过align参数来改变left值的含转载 2020-12-28 22:06:04 · 1743 阅读 · 1 评论 -
mongo数据库基本操作
1. 查看当前数据库的版本号:db.version()2. 查看当前所在的数据库:db 默认是test数据库3. 查看当前数据库连接的地址:db.getMongo()4. 查看所有数据库:show databases / show dbs注:数据库如果没有数据,不会显示5. 切换数据库:use 数据库名注:如果没有这个数据库,会先创建再切入 --- 数据库的隐式创建6. 创建集合:db.createCollection(集合名)7. 查看集合:show collections /原创 2020-12-27 23:42:02 · 504 阅读 · 0 评论 -
matplotlib 可视化
import numpy as npimport matplotlib.pyplot as plt#创建画布plt.figure(facecolor = '#0D0434')#修改字体plt.rcParams['font.sans-serif'] = 'SimHei'#修改符号plt.rcParams['axes.unicode_minus'] = False#修正背景颜色plt.rcParams['axes.facecolor'] = '#0D0434'#刻度 字体颜色plt.r原创 2020-12-26 00:27:09 · 527 阅读 · 1 评论 -
numpy 模块中的数组2
c、去重arr = np.array([21,2,21, 1, 0 ,1])np.unique(arr, axis=None)array([ 0, 1, 2, 21])去重后整行与整列去重:axis=0表示对比整行数,如果整行值都相同,则进行去重;axis=1表示对比整列数,如果整列值都相同,则进行去重;arr2 = np.array([[2,1,1,2],[2,1,1,2],[1,3,2,5]])np.unique(arr2, axis=None)array([1, 2, 3,原创 2020-12-24 23:14:11 · 682 阅读 · 0 评论 -
numpy 模块中的数组
数组的所有运算都是对应元素的运算;数组的创建import numpy as np#一维的数组arr1 = np.array([1, 2, 3, 4])print(arr1)print(type(arr1))[1 2 3 4]<class 'numpy.ndarray'>#二维的数组:arr2 = np.array([[1, 2, 3],[0, 1, 2],[2, 3, 1]])print(arr2)[[1 2 3] [0 1 2] [2 3 1]]#列向原创 2020-12-23 22:18:07 · 902 阅读 · 0 评论 -
numpy 模块中的矩阵
numpy : 计算模块; 主要有两种数据类型:数组、 矩阵特点: 运算快首先安装 numpypip install numpy#导入import numpy as np创建矩阵mat1 = np.mat("1 2 3; 2 3 4; 1 2 3")mat2 = np.mat("1 2;2 3;2 2")mat3 = np.mat("1 2 2; 2 2 4; 1 1 2")mat4 = np.mat("1 0 0; 0 4 0; 0 0 6")print(mat1)print(t原创 2020-12-22 22:49:25 · 463 阅读 · 1 评论 -
Django 、Flask、Tornado
1、Python总体架构Python的整体架构可以分为主要三个部分:左边是 Python提供的内置模块 库 及用户自定义模块右边是Python的运行环境,包括对象/类型系统、内存分配器、运行状态信息中间是Python的核心 解释器。Python运行时的数据流 词法分析、语法分析、编译、执行常用标准库下面是在逛CSDN每天都被灌的鸡汤,总结一下缺养时可以补补:编程之久除了算法和数据结构,什么也不属于我们。编程就是算法和数据结构,算法和数据结构是编程的灵魂。编程中最没用的东西是源代码,最转载 2020-12-20 22:32:17 · 775 阅读 · 0 评论 -
Python线程安全问题及解决方法
Python多线程是通过threading模块来实现的。一、多线程共享全局变量from threading import Thread list_a = [1, 2, 3] def add_list(): global list_a list_a.append(100) print(list_a) if __name__ == '__main__': t1 = Thread(target=add_list) t2 = Thread(targ转载 2020-12-17 23:52:38 · 1144 阅读 · 1 评论 -
python协程的实现
异步请求:使用协程一、协程定义:又叫微线程,比线程还要小的一个单位。协程不是计算机提供的是程序员自己创造出来的。协程是一种用户态内的上下文切换技术,简单来说,就是通过一个线程去实现代码块(函数)之间的相互切换执行。二、协程特点:使用协程不需要考虑全局变量的问题。协程必须要在单线程中实现并发。当一个协程遇到IO操作时,会自动的切换到另一个协程中继续执行。三、协程的实现(1) greenlet:早起的第三方模块(2) yield关键字(3) asyncio装饰器(python3.4版原创 2020-12-16 23:34:21 · 669 阅读 · 1 评论 -
python实现栈、队列、链表
实现栈class Stack(object): """ 栈 """ # 创建新栈 def __init__(self): self.stack = [] pass # 添加元素到栈顶 def push(self,item): self.stack.append(item) pass # 弹出栈顶元素 def pop(self): return self.s原创 2020-12-15 22:40:26 · 487 阅读 · 0 评论 -
二叉树详解
二叉树是一种树。这个树的每个节点都有不超过两个节点的孩子。我们通常将二叉树倒画,即将其根画在顶部,叶子画在最底部。一颗典型的二叉树表示如下:“二叉搜索树(BST)” 或者说是有序二叉树,是二叉树的一种。在 BST 中,一个节点的所有左孩子存储的数据都比节点自身存储的数据小(或者相等),与之对应的,右孩子存储的数据都比节点自身要大。上图其实就是二叉搜索树的示例。在上图中,根节点存储的数据是 5,左孩子存储的 {1,3,4} 都比 5 小,右孩子存储的数据 {6,9} 都比 5 大。该关系可以递归下去,直到原创 2020-12-14 23:34:00 · 543 阅读 · 0 评论 -
MySql、Mongodb和Redis的区别
NoSQL 的全称是 Not Only SQL,也可以理解非关系型的数据库,是一种新型的革命式的数据库设计方式,不过它不是为了取代传统的关系型数据库而被设计的,它们分别代表了不同的数据库设计思路。MongoDB:它是一个内存数据库,数据都是放在内存里面的。对数据的操作大部分都在内存中,但 MongoDB 并不是单纯的内存数据库。MongoDB 是由 C++ 语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为 WEB转载 2020-12-11 23:41:29 · 451 阅读 · 0 评论 -
事务
什么叫做事务呢 就是同时可以执行多个语句 一旦有一个错误 就不能运行下去 。事务四大特性(简称ACID)原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability)例如我们需要做一些批量的操作并且同时执行 如果我们用其他方法 例如判断的话 那么就回一直判断 如果数据多的话 那么就有可能出错 所以我们要用一种简单的方式 开启事务 并且使用使用.简单的思路就是 开启事务 然后把要执行语句放在一起 如果一个出错那么任何都会不会往下走原创 2020-12-10 22:31:59 · 388 阅读 · 0 评论 -
输入url后,浏览器是如何运行的
1.首先解析URL地址是否合法。2.查看是否存在缓存(浏览器-系统-路由器)。3.发起http请求前,对域名进行解析(dns解析),获取相应的ip地址。4.发起TCP连接,三次握手。5.握手成功,浏览器向服务器发送http请求,发送请求数据包。6.服务器收到请求,将数据返回给浏览器。7.浏览器接收到返回的响应。8.浏览器解析响应,如果可以存入缓存,则存入缓存。9.浏览器发送请求,获取嵌入在html中的资源(css,js,图片等)10.浏览器发送异步请求。11.页面渲染,结束。...原创 2020-12-09 23:31:00 · 612 阅读 · 0 评论 -
python装饰器
若程序实现了两个函数:def say_hello(): print "hello!" def say_goodbye(): print "hello!" # bug hereif __name__ == '__main__': say_hello() say_goodbye()但是在实际调用中,我们发现程序出错了,上面的代码打印了两个hello。经过调试你发现是say_goodbye()出错了。老板要求调用每个方法前都要记录进入函数的名称,比如这样:[转载 2020-12-08 23:12:25 · 360 阅读 · 0 评论