![](https://img-blog.csdnimg.cn/20200229220107291.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
★★Python基础
文章平均质量分 51
Python乱七八糟无法归类的笔记
维格堂406小队
人天生都是软弱的,唯其软弱而犹能承担起苦难,才显出人的尊严。
展开
-
PythonNote042---pymysql使用
简单介绍pymysql的一些操作,增改删查。原创 2023-07-28 16:59:08 · 324 阅读 · 0 评论 -
PythonNote041---exec变量作用域问题
fun_y1 = 1{fun_y1 = 1}fun_y1 = 1{locals().fun_y1 = 1(fun_y1 = 1,fun_y1 = 1None)}fun_y1 = 1此时不会污染全局变量。原创 2022-11-27 12:11:16 · 410 阅读 · 0 评论 -
PythonNote040---命名空间globals、locals、vars
基础概念问题,举几个例子,尝试理解~原创 2022-11-27 11:33:36 · 361 阅读 · 0 评论 -
PythonNote039---argparse处理布尔型参数
argparse无法识别布尔型参数,参数传进来时,默认为字符串。字符串强制转布尔型时为True。原创 2022-11-26 14:38:40 · 489 阅读 · 0 评论 -
PythonNote038---python执行shell命令
python执行shell命令的几种方法。原创 2022-08-26 17:53:41 · 456 阅读 · 0 评论 -
PythonNote037---python中列表合并、嵌套打平
多个列表合并、嵌套列表合并的操作多个列表合并多个列表合并时常规操作,不提x = [0,1]y = [2,3][*x,*y][0, 1, 2, 3]x+y[0, 1, 2, 3]嵌套列表打平import operatorfrom functools import reducea = [[1,2,3], [4,5,6], [7,8,9]]reduce(operator.add, a)[1, 2, 3, 4, 5, 6, 7, 8, 9]或者reduce(lambda原创 2022-04-03 11:09:49 · 931 阅读 · 0 评论 -
PythonNote036---python中字典合并
多个字典合并的操作不同keyx = {"id": 1}y = {"name": "jack"}{**x,**y}{'id': 1, 'name': 'jack'}相同key两个字典合并相同key会出现覆盖的情况x = {"id": 1}y = {"name": "jack","id":2}{**x,**y}{'id': 2, 'name': 'jack'}如果value是list格式,可把同个key的value进行合并,或者做其他操作x = {"id": [1]}y原创 2022-04-02 15:50:58 · 728 阅读 · 0 评论 -
PythonNote035---python中星号的作用
可迭代对象的应用一个*、迭代对象的解包可以对字符串、元组、列表等可迭代对象进行解包fruit = ['apple','pear','grape','banana']*x,y=fruitprint(f"x={x},y={y}")x=['apple', 'pear', 'grape'],y=banana可以把list最后一个元素赋给y,其余的赋给x对于元组同理*x,y=(1,2,3,4,5)print(f"x={x},y={y}")x=[1, 2, 3, 4],y=5一个*、可原创 2022-03-08 09:58:07 · 116 阅读 · 0 评论 -
PythonNote034---把字符串当做代码执行
Intro有时候,需要把字符串当做代码执行,看个例子getattrGet a named attribute from an object; getattr(x, ‘y’) is equivalent to x.yimport pandas as pddf=pd.DataFrame({"x":[1,2,3]})getattr(df,"x").count()3getattr(df,“x”)相当于df.x如果想执行df.x*2怎么弄?evaleval("df.x*2")0原创 2022-01-13 21:11:36 · 209 阅读 · 0 评论 -
PythonNote033---操作Redis
Intro关注点:目前只看hashset内容增改删除常规操作就可类似mysql,怎么减少长连接的操作增改删查import redisdb = redis.Redis(host='127.0.0.1', port=6379, password='12345', db=0, encoding='utf-8', decode_原创 2022-01-13 21:10:59 · 211 阅读 · 0 评论 -
PythonNote032---python打印带颜色字符串
Intro 网上资料很多了,不多说,也有其他方法。记录下自己封装的小函数,方便自己的使用。Codedef magic_str(raw_str, display_mode="", font_color="", back_color=""): """ jupyter打印时可以显示颜色 :param raw_str: 原始字符串 :param display_mode:0默认1粗体4下划线5闪烁7反白显示 :param font_color:字体色-30黑31红32原创 2021-09-14 19:46:42 · 175 阅读 · 0 评论 -
PythonNote031---python和hdfs的交互
目的 有些简单的模型,希望直接python训练完模型,放在hdfs上,预测时,scala或者sql做特征,再用python进行预测,预测结果插入hive表。那么就涉及到如何加载hdfs的模型,遇到了些坑,只给出目前的解决方案,不求甚解~方法连接hdfs的python库有多个,用下来,hdfs安装相对方便,使用尚能满足持久化模型也有多种方法,pickle、joblib、pmml,joblib加载模型报错,暂时没找到解决方案,pickle可用from hdfs import InsecureCl原创 2021-08-25 16:08:30 · 231 阅读 · 0 评论 -
PythonNote030---sklearn近邻api使用
Intro 近邻相关计算的api,底层用了kdtree,速度更快。简单整理总结下,备查。Case1import numpy as npimport pandas as pd from sklearn.neighbors import NearestNeighbors samples = [[0., 0., 0.], [0., .5, 0.], [1., 1., .5], [2, 0, 0], [2, 1, 0]]df = pd.DataFrame(np.array(samples), co原创 2021-03-26 10:23:47 · 155 阅读 · 0 评论 -
PythonNote029---python查询内存、cpu信息
简单记录下,无他~import psutilimport osinfo = psutil.virtual_memory()print(u'内存使用:',round(psutil.Process(os.getpid()).memory_info().rss/1024/1024/1024,2))print(u'总内存:',round(info.total/1024/1024/1024,2))print(u'内存占比:',info.percent)print(u'cpu个数:',psutil.c原创 2021-03-25 15:41:27 · 176 阅读 · 0 评论 -
PythonNote028---列表过滤筛选和提取
Intro 希望根据某些已知条件,筛选过滤列表中想要的元素。最直观的方式是希望True False进行指定索引位置的元素提取。以提取偶数为例,看下具体实现~筛选方法一x_list = range(10)[i for i in x_list if i%2==0][0, 2, 4, 6, 8]方法二list(filter(lambda x: x%2==0, x_list))[0, 2, 4, 6, 8]提取主要是针对索引提取,比如要提取索引[2,3]的元素方法一列表推导式原创 2021-03-16 16:39:04 · 193 阅读 · 1 评论 -
PythonNote027---嵌套list偏平化操作
Intro 嵌套list扁平化,把每个子元素取出来,再拉平,放到一个list中。R中有unlist方法,Scala中有flatMap方法,python中也可类似实现。直接看case。方法一x_list = [[0,1],[2,3],[4,5,6]]flat_list = [item for sublist in x_list for item in sublist]flat_list[0, 1, 2, 3, 4, 5, 6]这个用法也会加上if判断,举个例子,把偶数元素提取出来y_l原创 2021-03-16 14:14:17 · 540 阅读 · 2 评论 -
PythonNote026---自动发邮件
Intro有时候需要代码执行到某个阶段,发送消息通知。邮件是一个很好的载体。代码中涉及到smtplib库应该是python自带,email库,anaconda似乎也已经有了。如无,则再安装即可。Codeimport smtplibfrom email.mime.text import MIMETextfrom email.utils import formataddrimport timedef mail(subject="号外号外", body="正文:", receiver='54321原创 2021-02-24 16:57:03 · 119 阅读 · 0 评论 -
PythonNote025---conda创建python虚拟环境
Intro 有些情况下,需要用到特殊版本的package,我们可以通过创建虚拟环境的方式定制一个版本供某一个项目使用,保证环境的相对独立性。另一方面,如果我们在集群上执行python任务,虚拟环境的方式可以避免在所有节点都安装同一个package的问题。 以conda命令为例,介绍在linux环境中如何创建虚拟环境。conda常用命令conda list 查看已经安装的包conda env list 或 conda info -e 查看已经存在虚拟环境创建虚拟环境conda creat原创 2020-09-08 16:10:57 · 183 阅读 · 0 评论 -
PythonNote024---argparse使用
Intro argparse是 Python 标准库中推荐的命令行解析模块,花里胡哨的东西不说了。目前用的最多的时,再起python任务时,通过这个package,把相关参数通过命令行的方式传入。 python版本信息:import argparseimport sysprint("Python版本:",sys.version)print("argparse版本:",argparse.__version__)Python版本: 3.7.0 (default, Jun 28 2018,原创 2020-07-12 22:19:15 · 176 阅读 · 0 评论 -
PythonNote023---python与kafka交互
Intro Kafka的原理不是很清楚,通过python去订阅local环境的kafka,也只是完成数据的自测。以后有机会再去了解kafka的原理吧~ 需要额外安装pip install kafka-python,相关环境和package信息:import kafkaimport pandas as pdimport sysimport datetimeprint("Python版本:",sys.version)print("pandas版本:",pd.__version__)pri原创 2020-07-12 22:22:01 · 346 阅读 · 0 评论 -
PythonNote022---python读取Apollo配置
Intro 读取Apollo配置信息没啥难的,仅仅做个记录~参考https://github.com/ctripcorp/apollo。在测试环境(106.54.227.205)下登录账号(账号/密码:apollo/admin)设置对应的app_id=weigetang-test增加对应的配置信息{“kafka_addr”:255.255.255.255}import pyapollo# 这个ip地址有问题,需要注意。。。# 但是代码是通的 server_url="http://106原创 2020-07-12 22:21:27 · 528 阅读 · 0 评论 -
PythonNote021---python格式化输出format和%
算是python的基础操作了,还是记点笔记,不然每次都要百度~import syssys.version'3.7.0 (default, Jun 28 2018, 08:04:48) [MSC v.1912 64 bit (AMD64)]'%用法整数输出%o —— oct 八进制%d —— dec 十进制%x —— hex 十六进制十进制用的比较多,看下十进制的demoprint("%d"% 520)520浮点数输出%f ——保留小数点后面六位有效数字 %.3f,保原创 2020-07-13 09:25:18 · 198 阅读 · 0 评论 -
PythonNote020---通过nowapi获取历史天气数据
import json,requests,jsonimport pandas as pd基础测试url = 'http://api.k780.com'params = { 'app' : 'weather.history', 'weaid' : '1',# 城市编号 'date' : '2020-01-02',# 查询日期 'appkey' : 'appkey',# appkey 'sign' : 'sign',#签名 'format' : 'json',# 有Json原创 2020-05-18 16:17:22 · 625 阅读 · 0 评论 -
PythonNote019--Python中main
Talk is cheap,Show me the code. 两个脚本:file one.py# file one.pydef func(): print("func() in one.py")print("top-level in one.py")if __name__ == "__main__": print("one.py is being ru...原创 2018-03-25 11:57:00 · 240 阅读 · 0 评论 -
PythonNote018---持久化操作
1. 保存变量1.1 pickle(泡菜) pickle库可以指定多个变量保存在.pickle文件中,如果需要保存的变量不是很多,这种方法可以采用。import pickle# obj0, obj1, obj2 are created here...obj0, obj1, obj2 = [1, 2], [2, 3], [3, 4]# Saving the objects:# 通过...原创 2018-09-29 21:01:13 · 2784 阅读 · 0 评论 -
PythonNote017---计算房贷还款
等额本息还款 选择等额本息还款方式时,每个月还款金额是固定的,此时每个月还款的利息和本金都是变化的。介绍几个定义:年利率,银行约定的贷款年利率,如果商贷4.9%月利率= 年利率/12代还本金=总本金-已还本金当期应还利息 = 代还本金*月利率当期应还本金 = 固定额 - 当期应还利息第一期时:1st应还利息 = 总本金*月利率1st应还本金 = 固定额 - 当期应还利息...原创 2020-02-23 23:43:13 · 1439 阅读 · 3 评论 -
PythonNote016---求某个日期是当年的第几周,当周的第几天
import timefrom datetime import datetimedata_day = '20190101'week = int(datetime.strptime(data_day,"%Y%m%d").strftime("%W"))+1weekday = '7' if datetime.strptime(data_day,"%Y%m%d").strftime("%w")==...原创 2019-10-21 13:44:06 · 797 阅读 · 0 评论 -
PythonNote015---Python和odps交互
python连接odps,并且通过sql进行查询,返回dataframefrom odps import ODPSfrom odps import DataFramedef exe_odps(sql, project): ''' sql:待执行sql project:项目空间 ''' access_id = '*****' secret_acc...原创 2020-02-17 11:30:25 · 821 阅读 · 0 评论 -
PythonNote014---Python读取相对路径上上级文件
经常在jupyter中使用相对路径进行数据存取,一般情况下目录结构是:Project文件夹,如下图中OneClassSvm各个文件夹如Code、Data、Picture等Code下面是具体的notebook文件如果需要读取Code文件下文件,·pd.read_csv(“a.csv”)·或者pd.read_csv("./a.csv")如果读取Data下面的文件,·pd.re...原创 2020-01-17 11:23:31 · 4166 阅读 · 0 评论 -
PythonNote013---Mac下使用matlibplot中文乱码
方法一该方法主要是修改配置,下载字体,具体可以参考:https://zhuanlan.zhihu.com/p/35085285方法二可以不改配置,加一行代码就成,实测可行。具体可以参考:https://blog.csdn.net/qq_32590631/article/details/80509741import numpy as npimport matplotlib.pyplot a...原创 2019-05-06 10:29:56 · 404 阅读 · 1 评论 -
PythonNote012---JupyterNotebook输出html,隐藏代码
需求:在输出html时可以隐藏代码~1 R kernel 时library(IRdisplay)display_html('<script> code_show=true; function code_toggle() { if (code_show){ $(\'div.input\').hide(); } else { $(\'div.input...原创 2019-03-16 10:12:29 · 5340 阅读 · 0 评论 -
PythonNote011---python调用R
上Code import rpy2.robjects as robjectsr_script = '''library(randomForest) # 导入随机森林包## use data set irisdata = iris # 使用鸢尾花数据集table(data$Species)## create a randomForest model to classfy the iri...原创 2019-03-27 20:45:25 · 619 阅读 · 0 评论 -
PythonNote010---切换pip镜像源
pip install package时,很慢,这时候可以切换成国内镜像。电脑win10安装的是anaconda,可以通过如下方式修改:在C:\Users\用户名\pip目录下新建文件,如果没有pip文件夹,则新建文件夹。在该文件夹下新建.ini文件[global]index-url=http://mirrors.aliyun.com/pypi/simple/[install]tru...原创 2020-04-17 23:19:33 · 191 阅读 · 0 评论 -
PythonNote009---线程和进程
线程和进程 通俗意义上的线程和进程的解释,摘自廖雪峰Python教程进程(Process):对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程,打开一个Word就启动了一个Word进程线程(Thread):有些进程还不止同时干一件事,比如Word,它可以同时进行打字、拼写检查、打印等事情。在一个进程内部,要同时干多件事,就需要同时运行多个“子任务”,我们把进程内的这些“子任务原创 2020-05-18 13:52:41 · 180 阅读 · 0 评论 -
PythonNote008---时间处理
常用的时间、日期处理生成间隔时序list备用import datetimedef dateRange(start, end, step=1, inputFormat="%Y-%m-%d", outputFormat="%Y%m%d"): """ startDate:开始时间,字符串类型,默认yyyy-MM-dd endDate:结束时间,字符串类型,默认yyyy-MM-dd format:返回的日期字符串格式,可以指定 """ # strptim原创 2020-05-18 13:53:13 · 171 阅读 · 0 评论 -
PythonNote007---包管理
包的版本查看、升级、卸载等操作。环境信息:系统:Win10Python:3.7.0(python --version)查看Package详情pip show pandas查看Package版本查看包的版本,在python中需要先import对应包,再查看对应版本import pandas as pd pd.__version__'0.23.4'Package升级把包升级到指定的版本,在cmd窗口输入以下命令pip install --upgrade <库的名字&g原创 2020-05-18 13:51:37 · 229 阅读 · 0 评论 -
PythonNote006---logging and try-exception
异常捕捉 程序可能会出现未知或者难以预料的错误,这时候需要捕捉异常。异常有很多形式,具体不多说,只是记录下工作中常用的一种处理流程,不知道是否合理,但是程序可以这么用。常见的异常 常见的异常有ValueError、ZeroDivisionError、UnicodeError等。对于有的异常,我们需要及时捕获并且反馈,比如用 python做一个简易的计算器。如果0做分母,则需要告...原创 2018-03-25 17:20:55 · 7603 阅读 · 0 评论 -
PythonNote005---Analytic Json
要把R的代码改写成Python,py又啥都不会,直接看的也都忘记了。简直完蛋~json文件以文本形式保存在指定目录下,文件后缀名指定为json原创 2017-11-27 18:07:35 · 1159 阅读 · 0 评论 -
PythonNote004---Jupyter Notebook设置
安装直接安装Anaconda。 官网下载着实是慢到吓尿~可以从清华大学的镜像下载。 地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/?C=M&amp;O=D Jupyter Notebooks输出pdf环境WIN7+Anaconda2-5.0.1-Windows-x86_64 pandoc-1.12.3 +setup-2.9.6300原创 2017-11-29 11:34:24 · 1731 阅读 · 0 评论 -
PythonNote002---文件的输入输出
文件内建函数(open)open的基本用法 基本用法file_object = open(file,mode = 'r')参数含义:file_name要打开的文件名字的字符串,可以是相对路径或者是绝对路径access_mode文件打开的模型:"r"读取;"w"写入,且为从开头覆盖;"a"结尾追加其余参数参看帮助文档文件的写入 使用open函数,新建文本文件,进行写入操作。## 进行读写操作f = open(file = 'test.txt',mode = 'w')## 该文件不存原创 2020-05-18 13:50:29 · 151 阅读 · 0 评论