Python基础学习
strong tyj
在校学生
展开
-
Python截取小数点后几位的方法
1. "%.1f" % value"%.1f" % (6.35)2. 可以通过字符串的方式进行截取。就是以.为分割单位,将整个数分为前后两部分,前面部分就是整数部分,全部都要的,后面部分就是小数部分,小数部分通过切片[:1],只要第一位元素即可。s1 = "6.35"s1_list = s1.split('.')s1_new = s1_list[0] + '.' + s1...原创 2019-12-26 13:01:01 · 14967 阅读 · 0 评论 -
Python小数相加的坑:加出来等于.9999999一大串
最近做数据处理,遇到了Python中小数的这种问题,写出来当做笔记。代码:x = 6.2 + 0.1print(x)x = 6.3 + 0.1print(x)第一个输出6.3 是没有任何问题的,但是第二个本应该是6.4。但是出来的却是一大串,这个比较令我困惑。后面发现其实就是Python的数据类型问题。解决方式如下:方式1:x = Decimal('6.3'...原创 2019-12-26 12:52:38 · 10928 阅读 · 1 评论 -
Python之pandas学习【9】:利用pandas筛选出CSV某几列的数据进行数据处理
今天做了一个实战性的任务,利用pandas筛选出CSV的某几列数据进行数据处理,数据处理用的是re模块,也就是正则表达式。直接上代码,注意看代码注释,自己运行一遍结合代码注释是最好的效果代码:import reimport pandas as pdimport timeclass jk_jd(): # 方法1:传统for循环 def solution(self...原创 2019-12-15 13:48:28 · 5616 阅读 · 0 评论 -
matplotlib学习笔记【12】:matplotlib在一个横坐标刻度下画出多个条形图bar
今天做了一些简单的数据分析。数据如下:代码: def view_all2(self,data): hw_server = data[(data['name'] == 'HW') & (data['device'] == 'server')] hw_server_count = hw_server.device.count() t...原创 2019-11-30 10:27:55 · 1167 阅读 · 0 评论 -
matplotlib学习笔记【11】:利用pandas对数据进行统计,利用matplotlib画出柱状图进行数据分析
今天做了一些简单的数据分析和统计,记录一下。数据格式如下:name字段代表厂商,device字段代表设备,type字段是设备型号1. 主函数if __name__ == '__main__': data = pd.read_csv('testData.csv') ds = data_solution() ds.dealwith_server(data) ...原创 2019-11-30 10:22:28 · 685 阅读 · 0 评论 -
matplotlib学习笔记【10】:动画展示
1. 代码import numpy as npfrom matplotlib import pyplot as pltfrom matplotlib import animationfig, ax = plt.subplots()x = np.arange(0, 2*np.pi, 0.01)line, = ax.plot(x, np.sin(x))def animate(...原创 2019-11-16 17:34:51 · 166 阅读 · 0 评论 -
matplotlib学习笔记【9】:在图中画图,次坐标轴的勾画
一. 在图中画图 1. 代码import matplotlib.pyplot as pltfig = plt.figure()x = [1, 2, 3, 4, 5, 6, 7]y = [1, 3, 4, 2, 5, 8, 6]"""以下参数的意思全都是百分比:左边从fig的%10开始,下面也从fig的10%开始。而这张图的宽度和高度都占整个fig的80%这是整个图的范围...原创 2019-11-16 17:23:35 · 190 阅读 · 0 评论 -
matplotlib学习笔记【8】:subplot的分格显示
1. 代码import matplotlib.pyplot as pltimport matplotlib.gridspec as gridspec# 方式 1: subplot2grid##########################plt.figure()"""这种方式就是定义3*3的网格,然后后面就告诉你从哪个网格(0,0就是0行0列的网格开始)colspan = ...原创 2019-11-16 16:41:29 · 250 阅读 · 0 评论 -
matplotlib学习笔记【7】:subplot实现多张图片显示在一个窗口中
1. 代码import matplotlib.pyplot as plt# 例子 1:###############################plt.figure(figsize=(6, 4))# plt.subplot(行数,列数,第几张)两行两列一共4张图片plt.subplot(2, 2, 1)plt.plot([0, 1], [0, 1])plt.subplo...原创 2019-11-16 16:26:16 · 3156 阅读 · 0 评论 -
matplotlib学习笔记【6】:以矩阵形式读取图片,3D图像显示
一. 以矩阵形式读取图片 1. 代码import matplotlib.pyplot as pltimport numpy as np# image data# 定义一个矩阵,也就是图片的像素点a = np.array([0.313660827978, 0.365348418405, 0.423733120134, 0.365348418405...原创 2019-11-16 16:08:36 · 2662 阅读 · 2 评论 -
matplotlib学习笔记【5】:等高线的画法
1. 代码import matplotlib.pyplot as pltimport numpy as np# 定义山峰的高度的函数,你不用管def f(x,y): # the height function return (1 - x / 2 + x**5 + y**3) * np.exp(-x**2 -y**2)# 创建点n = 256x = np.lin...原创 2019-11-16 15:18:01 · 305 阅读 · 0 评论 -
matplotlib学习笔记【4】:柱状图(也就是条形图)
注意看代码注释,解析全在注释中,其实自己运行一下,结合代码注释,效果最好。1. 代码import matplotlib.pyplot as pltimport numpy as np# 创建数据n = 12X = np.arange(n)Y1 = (1 - X / float(n)) * np.random.uniform(0.5, 1.0, n)Y2 = (1 - ...原创 2019-11-16 14:46:01 · 215 阅读 · 0 评论 -
matplotlib学习笔记【3】:设置能见度,散点图学习
一. 设置能见度1. 代码:import matplotlib.pyplot as pltimport numpy as npx = np.linspace(-3, 3, 50)y = 0.1*xplt.figure()plt.plot(x, y, linewidth=10, zorder=1) # set zorder for ordering the plot...原创 2019-11-11 15:34:00 · 236 阅读 · 0 评论 -
matplotlib学习笔记【2】:添加图示图例,添加标注
一. 添加图示图例1. 代码:import matplotlib.pyplot as pltimport numpy as npx = np.linspace(-3, 3, 50)y1 = 2*x + 1y2 = x**2plt.figure()# set x limitsplt.xlim((-1, 2))plt.ylim((-2, 3))# set new s...原创 2019-11-11 15:02:53 · 1038 阅读 · 0 评论 -
matplotlib学习笔记【1】:matplotlib的简单使用,figure讲解,坐标轴的设置
一. 简单使用1. 代码import matplotlib.pyplot as pltimport numpy as np""" 此段代码介绍了matplotlib模块的简单应用"""x = np.linspace(-1,1,50)print(x)print(x.ctypes)# y = 2*x + 1y = x**2 + 1plt.plot(x,y) # ...原创 2019-11-11 14:17:43 · 252 阅读 · 1 评论 -
Python之多进程(multiprocessing)学习【5】:共享内存,锁
一. 共享内存 在多进程中,如果我们想要定义一个全局变量,让他在各个进程之间进行交流是不行的,所以我们就引入了一个新的概念,全局变量,通过v = mp.Value() 定义了一个全局变量。括号里有参数,后面代码会体现出来。这样它才能够供你提供的cpu内核去使用,并且使用的是同样的内存。二. 锁 如果你不想你的共享内存被各个进程影响,或者说你不想各个进程之间互相干...原创 2019-10-28 08:27:10 · 555 阅读 · 0 评论 -
Python之多进程(multiprocessing)学习【4】:进程池
一. 解析 进程池就是说把进程都放到一个池子里,他会自动给你的任务分配进程,自动返回结果。二. 代码import multiprocessing as mpdef job(x): return x*xdef multicore(): pool = mp.Pool(processes=2) # 指定两个核去帮我做事情 res = pool....原创 2019-10-27 16:20:09 · 198 阅读 · 0 评论 -
Python之多进程(multiprocessing)学习【3】:平常状态,多线程,多进程比较
一. 代码import multiprocessing as mpimport threading as tdimport timedef job(q): res = 0 for i in range(1000000): res += i+i**2+i**3 q.put(res) # queuedef multicore(): q ...原创 2019-10-27 15:54:15 · 115 阅读 · 0 评论 -
Python之多进程(multiprocessing)学习【2】:Queue功能,能够帮助获得输出
一. 解析 Quene也和多线程一样,是为了将运算所得的结果通过put方法放到quene中,最后通过get方法获得。二. 代码import multiprocessing as mpdef job(q): res = 0 for i in range(1000): res += i+i**2+i**3 q.put(res)...原创 2019-10-27 14:45:12 · 432 阅读 · 0 评论 -
Python之多进程(multiprocessing)学习【1】:创建进程,join方法
一. 解析 Python多进程和 多线程其实是类似的 用法,之前我有写过多线程的博客,可以查看。二. 代码 我最开始运行 报错没有Process这个模块。 于是检查自己是不是拼错了,发现没有。又检查是不是没有安装multiprocessing这个模块, 发现自带的是。最后发现我自己把Python包命名成了multiprocessing,改过之后就可以了。impor...原创 2019-10-27 14:29:07 · 459 阅读 · 0 评论 -
Python之多线程学习【4】:lock锁的应用
一. 解析 如果某一些线程,你不希望交替执行,而是想一个线程做完再去做其他的线程,那就需要用到锁二. 代码import threadingdef job1(): global A, lock lock.acquire() # 加锁 for i in range(10): A += 1 print('job1', ...原创 2019-10-27 14:07:07 · 213 阅读 · 0 评论 -
Python之多线程学习【3】:GIL影响线程的效率
一. 解析 其实很 简单,假如我现在有三个线程,它要对一些数据进行处理,它的处理时间其实不一定比平常时候高很多。就是因为GIL的存在。其实在每一个线程运算的过程中,其他的线程是无法运算的,是被锁住的,只有线程1运算结束,进入IO了,其他的线程才可以开始运算,所以开启多线程做运算节约的其实是IO的时间。但是多线程如果用于聊天系统的发消息,收消息,就很方便。二. 代码impor...原创 2019-10-27 13:49:55 · 132 阅读 · 0 评论 -
Python之多线程学习【2】:Queue功能,能够帮助获得输出
Quene 功能主要解决利用线程的计算不能直接return的问题一. 代码import threadingimport timefrom queue import Queuedef job(l,q): for i in range(len(l)): l[i] = l[i]**2 return q.put(l) # 线程运行的结果不能直接retur...原创 2019-10-27 13:29:57 · 189 阅读 · 0 评论 -
Python之多线程学习【1】:开启线程,查看线程,join方法
注意看代码注释,注意看运行结果一. 开启线程import threadingimport timedef thread_job(): print('T1 start','\n') for i in range(10): print(i) time.sleep(0.2) print('T1 finish\n')def m...原创 2019-10-25 16:53:49 · 334 阅读 · 0 评论 -
Python之pandas学习【8】:利用plot画图
注意看代码注释和运行结果,自己打一遍最好一. 代码import pandas as pdimport numpy as npimport matplotlib.pyplot as plt# Series 线性data = pd.Series(np.random.randn(1000),index = np.arange(1000))data = data.cumsum() ...原创 2019-10-25 11:02:10 · 184 阅读 · 0 评论 -
Python之pandas学习【7】:合并两个pandas(merge)
注意看代码注释和运行结果,自己运行一遍最好一. 代码import numpy as npimport pandas as pdleft = pd.DataFrame({'key':['K0','K1','K2','K3'],'A':['A0','A1','A2','A3'],'B':['B0','B1','B2','B3']})right = pd.DataFrame({'key...原创 2019-10-25 10:39:17 · 516 阅读 · 0 评论 -
Python之pandas学习【6】:合并两个pandas(concat)
注意看代码注释和运行结果,其实自己跑一遍什么都明白了。一. 代码import numpy as npimport pandas as pddf1 = pd.DataFrame(np.ones((3,4))*0,columns=['a','b','c','d'])df2 = pd.DataFrame(np.ones((3,4))*1,columns=['a','b','c','d'...原创 2019-10-25 09:56:41 · 801 阅读 · 0 评论 -
Python之pandas学习【5】:导入导出数据
一. 导入二. 导出三. 代码import pandas as pdimport numpy as npdata = pd.read_csv('test.csv') # 其实也可以读取TXT,不过有很多参数print(data)data.to_csv('student.csv')...原创 2019-10-25 09:13:39 · 364 阅读 · 0 评论 -
Python之pandas学习【4】:处理丢失的数据,NaN数据
注意看代码注释,看结果,其实自己拿去运行一下就清楚了1. 代码import pandas as pdimport numpy as npdates = pd.date_range('2019-10-22',periods=6)df = pd.DataFrame(np.arange(24).reshape(6,4),index=dates,columns=['A','B','C',...原创 2019-10-24 17:00:37 · 225 阅读 · 0 评论 -
Python之pandas学习【3】:设置矩阵的值
注意看代码注释!最好的是自己拿去跑一遍代码,就什么都懂了。1. 代码import pandas as pdimport numpy as npdates = pd.date_range('2019-10-22',periods=6)df = pd.DataFrame(np.arange(24).reshape(6,4),index=dates,columns=['A','B','...原创 2019-10-24 15:28:18 · 640 阅读 · 0 评论 -
Python之pandas学习【2】:数据的筛选和索引
注意看注释以及运行结果!!!实际上自己把代码跑一遍看结果就明白了。1. 代码import pandas as pdimport numpy as npdates = pd.date_range('2019-10-22',periods=6)df = pd.DataFrame(np.arange(24).reshape(6,4),index=dates,columns=['A','...原创 2019-10-24 10:33:01 · 505 阅读 · 0 评论 -
Python之pandas学习【1】:基本操作介绍
一. 代码(注意看代码注释以及运行结果)import pandas as pdimport numpy as np# 生成表格dates = pd.date_range('2019-10-23',periods=6)print(dates)df = pd.DataFrame(np.random.randn(6,4),index=dates,columns=['a','b','c'...原创 2019-10-23 20:00:03 · 132 阅读 · 0 评论 -
Python之numpy学习【4】:numpy的array合并,分割,以及deepCopy
一. 合并1. 代码:import numpy as npa = np.array([1,1,1])b = np.array([2,2,2])# 上下合并两个arrayc = np.vstack((a,b))print(c,c.shape)# 左右合并两个arrayd = np.hstack((a,b))print(d,d.shape)# 将a加一个横向的维度,...原创 2019-10-23 19:56:14 · 363 阅读 · 0 评论 -
Python之numpy学习【3】:numpy的索引
注意看代码注释!!!一. 代码import numpy as npa = np.arange(3,15)print(a)print(a[2])b = np.arange(3,15).reshape(3,4)print(b)# 依次是输出第二行(此2非彼2)第一列的值,第1行所有的值,第1列所有的值,第1行第1列到第3列的值,不包括第三列print(b[2][1],b[2...原创 2019-10-23 19:47:56 · 110 阅读 · 0 评论 -
Python之numpy学习【2】:进阶运算
注意看代码注释,说得很清楚一. 代码import numpy as npa = np.arange(2,14).reshape(3,4)print(a)print(np.argmin(a)) # 最小索引print(np.argmax(a)) # 最大索引print(np.mean(a)) # 平均值print(np.average(a)) # 平均值print(np...原创 2019-10-22 11:20:42 · 304 阅读 · 0 评论 -
Python之numpy学习【1】:numpy的创建以及基本运算
我的代码里面注释写的非常明白,所以就不过多赘述了。注意看代码注释一. 代码import numpy as np#将列表转化为数组array = np.array([[1,2,3],[2,3,4]])print(array)print('number of dim:',array.ndim) # 输出数组的维数print('shape:',array.shape)pri...原创 2019-10-22 11:17:51 · 139 阅读 · 0 评论 -
python之flask学习笔记(三):orm版本的网页请求增删改查
老规矩,看代码,看代码注释。注意:config那部分可忽略掉,就是为了让用户名密码以及主机被保护起来from flask import Flask, jsonify, requestimport sqlalchemyfrom sqlalchemy import create_enginefrom sqlalchemy.ext.declarative import dec...原创 2019-10-21 19:58:22 · 226 阅读 · 0 评论 -
python数据库ORM学习三:sqlalchemy批量处理数据
一. 在上一篇博客中说到了增删改查,这一次说一说批量的zeng增删改查注意看我的代码注释:import sqlalchemyfrom sqlalchemy import create_enginefrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column,Integer,S...原创 2019-10-21 19:54:18 · 1835 阅读 · 0 评论 -
python之pandas学习笔记:DataFrame模块
直接看代码好了,代码的注释写的非常清楚。1. 通过二维数组创建import pandas as pd#通过二维数组创建df = pd.DataFrame([['tyj','wmt','parent'],[22,22,50]])print(df)2. 通过字典创建#通过字典创建dic = {'tyj':[22,90,'游戏'],'wmt':[22,90,'看...原创 2019-10-18 21:06:58 · 222 阅读 · 0 评论 -
python之flask学习笔记(二):网页请求增删改查
不多说,直接上代码,一看就懂,注意几点:1. app = Flask(__name__)只是一个定义,无需关注。2. 每一个 @app()里都是一个前端URL加请求参数,而在下面就会有一个函数根据这个请求去做相应的操作。3. app.run()就是说这个接口会跑起来,一直等待前端页面的请求。from flask import Flask, jsonify, requestimp...原创 2019-10-18 20:45:22 · 616 阅读 · 0 评论