python
rosefunR
每次都多付出一点. 欢迎关注公众号《机器学习与算法之道》
展开
-
python dict字典型字符串转换成字典
>>> import ast>>> ast.literal_eval("{'muffin' : 'lolz', 'foo' : 'kitty'}"){'muffin': 'lolz', 'foo': 'kitty'}参考:Convert a String representation of a Dictionary to a dictionary?原创 2021-03-17 20:51:46 · 479 阅读 · 0 评论 -
Github项目文档的管理
1. 用github账号注册readthedocshttps://readthedocs.org/2. 安装Sphinx包具体参考:https://docs.readthedocs.io/en/stable/intro/getting-started-with-sphinx.html3. 把文档上传到GitHub4. readthedocs关联GitHub的项目https://readthedocs.org/dashboard/5. readthedocs编译6. 添加文档主题(可选)原创 2020-11-22 15:29:00 · 1425 阅读 · 0 评论 -
python程序进程命名
# 命名一个进程import multiprocessingimport timedef foo(): name = multiprocessing.current_process().name print("Starting %s \n" % name) time.sleep(3) print("Exiting %s \n" % name)if __name__ == '__main__': process_with_name = multiproces转载 2020-11-21 15:01:20 · 1655 阅读 · 0 评论 -
Centos安装python3和使用pip3
1. 安装python3从EPEL仓库安装安装最新版本的EPEL$ sudo yum install epel-release用yum安装python 3.6:$ sudo yum install python362. 切换默认的python为python3.6版本cd /usr/bin 备份原来的文件mv python python.bak 建立软连接ln -s /usr/bin/python3.6 /usr/bin/python3. pyth原创 2020-11-21 14:59:39 · 6506 阅读 · 0 评论 -
python包开发的坑
1. 调试和之前安装的冲突安装了之前自己开发的包,然后,重新调试,模块路径改动后,python还是默认安装包的程序。python导入模块的顺序:(1).py 所在文件的目录(2)PYTHONPATH 中的目录(3)python安装目录,UNIX下,默认路径一般为/usr/local/lib/python/(4)3.x 中.pth 文件内容...原创 2020-11-20 14:58:04 · 6139 阅读 · 0 评论 -
Python中的__new__和__init__初始化的区别
__init__ 方法为初始化方法, __new__方法才是真正的构造函数。1、__new__方法默认返回实例对象供__init__方法、实例方法使用。class Human2(object): def __init__(self,age,sex): self.age = age self.sex = sex print("self", self) def speak(self): print("I am:",self.age,self.sex)示例:h = Hum原创 2020-10-14 08:53:39 · 310 阅读 · 0 评论 -
python状态码
56、列出常见的状态码和意义200 OK请求正常处理完毕204 No Content请求成功处理,没有实体的主体返回206 Partial ContentGET范围请求已成功处理301 Moved Permanently永久重定向,资源已永久分配新URI302 Found临时重定向,资源已临时分配新URI303 See Other临时重定向,期望使用GET定向获取304 Not Modified发送的附带条件请求未满足307 Temporary Redirect临时重定向,P原创 2020-09-21 23:40:18 · 395 阅读 · 0 评论 -
Python垃圾回收机制
引用计数Python中,主要通过引用计数(Reference Counting)进行垃圾回收。在Python中每一个对象的核心就是一个结构体PyObject,它的内部有一个引用计数器(ob_refcnt)。程序在运行的过程中会实时的更新ob_refcnt的值,来反映引用当前对象的名称数量。当某对象的引用计数值为0,那么它的内存就会被立即释放掉。typedef struct_object { int ob_refcnt; struct_typeobject *ob_type;} PyObject;原创 2020-10-21 16:39:22 · 178 阅读 · 0 评论 -
python list底层实现
列表实现可以是数组和链表。这里数值是指动态数组。因此:利用 list.insert(i,item) 方法在任意位置插入一个元素——复杂度O(N)利用 list.pop(i) 或 list.remove(value) 删除一个元素——复杂度O(N)index() O(1)append O(1)pop() O(1)pop(i) O(n)insert(i,item) O(n)del operator O(n)iteration O(n)contains(in) O(n)get slice[原创 2020-09-21 08:32:42 · 521 阅读 · 0 评论 -
python 大数两数相减
问题描述两个长度超出常规整形变量上限的大数相减,避免使用各语言内置库。输入两个代表整数的字符串 a 和 b,长度超过百位。输出 :返回表示结果整数的字符串。#!/usr/bin/env python# encoding=utf-8def big_num_minus(str1, str2): res = "" carry = 0 minus_flag = False if len(str1) < len(str2): minus_flag原创 2020-09-20 23:37:02 · 2714 阅读 · 0 评论 -
python二进制和十进制,十六进制的转换
#!/usr/bin/env python# encoding=utf-8def binary2decimal(x): string = str(x)[2:][::-1] res = 0 for i,num in enumerate(string): res += int(num)*2**i return resdef decimal2binary(x): res = "" while x: m = x%2原创 2020-09-20 15:58:11 · 512 阅读 · 0 评论 -
python面向对象三大特性:封装,继承,多态
面向编程三大特性:封装(隐藏),继承,多态。一. 封装通过私有属性,私有方法的方式实现封装。二. 继承python支持多重继承,一个之类可以继承多个父类。class 子类类名(父类1,父类2,…): 类体 父类名.__init__(self,参数列表)1.成员继承:子类继承了父类除构造方法之外的所有成员。2.方法重写:子类可以重新定义父类中的方法,这样就会覆盖父类中的方法,也称为重写。通过类的方法**dir()**查看对象属性重写__str__方法:用于返回一个对于“原创 2020-10-13 19:56:31 · 950 阅读 · 0 评论 -
python random 模块
import randomdef test(): lt = [i for i in range(10)] print(random.choice(lt)) print(random.sample(lt, 5)) random.shuffle(lt) print("shuffle lt",lt) print(random.randrange(1,10)) print(random.randint(1,10)) print(random.rand原创 2020-09-19 16:31:17 · 451 阅读 · 0 评论 -
python模块名
6.3. dir() 函数内置函数 dir() 用于查找模块定义的名称。 它返回一个排序过的字符串列表:https://docs.python.org/zh-cn/3/tutorial/modules.html原创 2020-10-24 09:56:00 · 169 阅读 · 0 评论 -
python self的含义
1. 简介self 是定义类的一个实例。比如类是 Human, self 等价于 Human().具体的原理是,python会自动对类调用 __init__方法,其中,需要把对象实例标识符传入这个方法中。因此,即使,我不用 self, 我也可以用其他的实例标识符代替。但默认是self。class Human(): def __init__(man,age,sex): man.age = age man.sex = sex def speak(man)原创 2020-09-18 09:56:28 · 383 阅读 · 0 评论 -
python assert和exception的区别
As for disabling them, when running python in optimized mode, where __debug__ is False, assert statements will be ignored. Just pass the -O flag:python -O script.py__debug__:如果程序运行时不带-O参数,则为True;反之则为False。https://docs.python.org/3/reference/simple_stmt原创 2020-09-11 12:37:59 · 693 阅读 · 0 评论 -
python正则表达式(re match,search,sub等模块)
1.简介正则表达式是检查一个字符串是否与某种模式匹配。re 模块含有 match, search等功能正则表达式的语法:2. re.matchre.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,返回None.re.match(pattern, string, flags=0)pattern: 匹配的正则表达式;string:要匹配的字符串;flags: 标志位;此外,可以通过 group(num) 来获取匹配表达式的小组。import re l原创 2020-09-07 16:28:20 · 498 阅读 · 0 评论 -
python sys.getsizeof 变量的大小
# 671MBa=np.ones(shape=(2000,44000),dtype=np.float)import syssys.getsizeof(a)/1024/1024原创 2020-08-18 11:24:06 · 2997 阅读 · 0 评论 -
numpy含nan值进行归一化操作
1. 方法一import numpy as npA = np.array([[ 7, 4, 5, 7000], [ 1, 900, 9, nan], [ 5, -1000, nan, 100], [nan, nan, 3, 1000]])#Compute NaN-normsL1_norm = np.nansum(np.abs(A), axis=1)L2_norm =原创 2020-08-07 17:34:28 · 1437 阅读 · 0 评论 -
python中的时间戳和time, datetime模块
import timetimestamp = time.time() #1594475666.4027507#转换成localtimetime_local = time.localtime(timestamp)#转换成新的时间格式(2020-07-11 21:54:26)time.strftime("%Y-%m-%d %H:%M:%S",time_local)原创 2020-07-11 22:02:35 · 2171 阅读 · 0 评论 -
pandas dataframe中iloc和loc的区别
1. ilociloc主要定位的是相对位置,如kFold这种都是这种相对索引进行split。2. locloc定位的是dataframe 本身的index。示例:a = pd.DataFrame({"f1":[11,22,33,44,55]},index=[6,5,4,3,2]) f16 115 224 333 442 55如果使用 iloc:a.iloc[[0,2,3],:]f16 114 333 44如果使用 loc:a.loc[[0,2,3],:]f1原创 2020-06-20 22:40:14 · 960 阅读 · 0 评论 -
python迭代器和生成器
1. 迭代器对于list、string、tuple、dict等这些容器对象,使用for循环遍历是很方便的。在后台for语句对容器对象调用iter()函数。iter()是python内置函数。iter()函数会返回一个定义了next()方法的迭代器对象,它在容器中逐个访问容器内的元素。next()也是python内置函数。在没有后续元素时,next()会抛出一个StopIteration异常,通...原创 2020-10-24 09:55:28 · 207 阅读 · 0 评论 -
pomegranate包实现贝叶斯网络
1. 包安装pip install pomegranate==0.102. 示例from pomegranate import *import numpy as npmydb=np.array([[1,2,3],[1,2,4],[1,2,5],[1,2,6],[1,3,8],[2,3,8],[1,2,4]])bnet = BayesianNetwork.from_samples...原创 2020-04-15 18:56:20 · 11501 阅读 · 1 评论 -
python对dict,list排序(sort,sorted)
1. dict排序根据 key 排序dict = {'apple': 2, 'pine':10, 'pear':10,'other':12}print(sorted(dict.items(), key=lambda d: d[0]))# 反序print(sorted(dict.items(), key=lambda d: d[0],reverse=True))结果:[('app...原创 2020-03-15 23:23:13 · 1018 阅读 · 0 评论 -
python对两个关联list排序(sort,sorted)及自定义排序
>>> list1 = [3,2,4,1, 1]>>> list2 = ['three', 'two', 'four', 'one', 'one2']>>> list1, list2 = zip(*sorted(zip(list1, list2)))>>> list1(1, 1, 2, 3, 4)>>&g...原创 2020-03-10 10:12:55 · 12514 阅读 · 1 评论 -
python微信定时发送消息
1. 代码from __future__ import unicode_literalsfrom threading import Timerfrom wxpy import *import requestsimport timeimport datetimefrom datetime import timedelta# 从缓存中获取登录信息,刚登陆过,无需一直登陆bot = ...原创 2020-02-14 11:20:58 · 27092 阅读 · 4 评论 -
python 多重list初始化
正确:x = [[foo for i in range(10)] for j in range(10)]错误:x = [[foo for i in range(10)]]*10这样定义的list ,只要其中的某行发生改变,其他行的元素也会发生改变!参考:How to initialize a two-dimensional array in Python?;...原创 2020-01-08 18:12:57 · 1055 阅读 · 0 评论 -
python提高运行效率方法
1.设置缓存示例:from functools import lru_cacheclass Solution: @lru_cache(10**8) def climbStairs(self, n): """ :type n: int :rtype: int """ if n == 1: ...原创 2020-01-08 10:19:14 · 312 阅读 · 0 评论 -
python绘图plotly包
1.安装pip install plotly==4.4.12.使用import plotly.graph_objects as gofig = go.Figure()fig.add_trace(go.Scatter(y=[2, 1, 4, 3]))fig.add_trace(go.Bar(y=[1, 4, 3, 2]))fig.update_layout(title = 'Hell...原创 2019-12-18 12:03:40 · 998 阅读 · 0 评论 -
python绘图包pyecharts
1.pyechartsEcharts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。主要特点:支持动态绘图,图中通过点击可以进行选择显示等动态显示功能。2.安装$pip install pyecharts -Uimport ...原创 2019-12-16 16:06:09 · 916 阅读 · 0 评论 -
python import导入模块
简介常规导入(regular imports)使用from语句导入相对导入(relative imports)可选导入(optional imports)本地导入(local imports)1. 常规导入常规导入常规导入应该是最常使用的导入方式,大概是这样的:import sys你只需要使用import一词,然后指定你希望导入的模块或包即可。通过这种方式导入的好处是可以一次...原创 2019-10-31 20:30:00 · 451 阅读 · 0 评论 -
Python 定义只读变量@property
class Test(): def __init__(self, val): self.__val= val @property def onlyReadVal(self): return self.__valf = Test(2)print(f.onlyReadVal)运行结果:2如果添加:f.onlyReadVal = 3会报错:AttributeError...原创 2019-10-25 10:55:40 · 3559 阅读 · 1 评论 -
python 装饰器
1.定义不希望修改函数的定义,同时在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator)。2.示例def log(func): def wrapper(*args, **kw): print('call %s():' % func.__name__) return func(*args, **kw) return wrappe...原创 2019-10-25 10:44:50 · 123 阅读 · 0 评论 -
Python Numpy 计算自相关系数
def autocorrelation(x,lags):#计算lags阶以内的自相关系数,返回lags个值,分别计算序列均值,标准差 n = len(x) x = numpy.array(x) result = [numpy.correlate(x[i:]-x[i:].mean(),x[:n-i]-x[:n-i].mean())[0]\ /(x[i:].std()*x[:n-i].std...原创 2019-10-16 15:34:53 · 18664 阅读 · 0 评论 -
独热编码 onehot 及python实现
1. 独热编码独热编码把可列举型数据,使用0,1进行编码。比如, 1 ,2,3 用 [1,0,0], [0, 1, 0], [0, 0, 1] 来表示。2. 实现 def oneHot(self, data): ''' 对标签进行独热编码 输入:data:array 输出:onehot data. ''' if data.shap...原创 2019-09-11 15:42:20 · 5810 阅读 · 1 评论 -
常见分类模型python实现
1.常用分类模型SVMMLPBayesGBDTLogistic Regressor2.python实现sklearn上已经有现成的包。SVC:import numpy as npX = np.array([[-1, -1], [-2, -1], [1, 1], [2, 1]])y = np.array([1, 1, 2, 2])from sklearn.svm import...原创 2019-09-10 23:02:17 · 14246 阅读 · 0 评论 -
numpy 与 dataframe 操作转换
1. mapdataframe:import pandas as pdres = pd.DataFrame({'a':[1,2],'b':[3,4]})res2 = pd.DataFrame( {'a':[2,1]})res2['b'] = res2['a'].map(dict(zip(res['a'], res['b'])))numpy:import numpy as npr...原创 2019-06-08 14:40:50 · 8089 阅读 · 0 评论 -
大数据下python的效率提升
1.不要用Appendappend 操作动态添加元素,很慢。可以先用 array 初始化一块内存,再赋值。2.少用pandas利用pandas转化为numpy array 进行操作,提高速度。原创 2019-06-03 16:51:36 · 1323 阅读 · 0 评论 -
python dict 保存为pickle格式
1. dict 保存为 picklemydict = {"1": 10, "3": 30}with open("./data/medFile/test.pickle", "wb") as fp: #Pickling pickle.dump(mydict, fp, protocol = pickle.HIGHEST_PROTOCOL) with open("./data/...原创 2019-05-28 10:05:36 · 9392 阅读 · 0 评论 -
进程和线程的区别及python多进程、多线程实现
1.实例# 多进程import threadingdef haha(max_num, k = 0, j = 3): for i in range(max_num + k + j): time.sleep(1) print(i) return ifor x in range(3): n = x + 3 t = threadin...原创 2019-05-27 16:01:08 · 300 阅读 · 0 评论