
Python
kunkun_1230
所写帖子都经过自测...
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
国内常用python模块下载地址
部分python模块下载的时候如果直接pip可能因为网速过慢导致中断,因此下载时如需要提速,最好指定下载代理。使用方法如下pip install h5py -i https://pypi.tuna.tsinghua.edu.cn/simple清华:https://pypi.tuna.tsinghua.edu.cn/simple阿里云:http://mirrors.aliyun.com/pypi/simple/中国科技大学 https://pypi.mirrors.ustc.edu.cn/sim原创 2021-12-07 16:57:55 · 1441 阅读 · 0 评论 -
Jupyter Notebook修改文档路径和浏览器设置
Jupyter Notebook修改文档路径和浏览器设置本来觉得这样的内容网上一堆,但是一搜发现谬误太多,索性自己写一个便于后期自己安装调试。第一步安装Ananconda的流程不再多说。1.安装后,打开在开始菜单下的prompt进一步在输入jupyter notebook --generate-config,找到jupyter_notebook_config文件的路径,一般是C:\Users\Administrator\.jupyter。按照网上有些文章在D盘安装文件下执行CMD命令是会报错的。原创 2021-06-23 14:36:56 · 605 阅读 · 1 评论 -
吴恩达深度学习Dinosaurus+Island作业的思考
吴恩达这节课的介绍如下Welcome to Dinosaurus Island! 65 million years ago, dinosaurs existed, and in this assignment they are back. You are in charge of a special task. Leading biology researchers are creating new breeds of dinosaurs and bringing them to life on ear原创 2021-03-31 17:04:43 · 364 阅读 · 0 评论 -
python优先队列
官方链接:https://pypi.org/project/sortedcontainers/最近刷题的时候遇到了优先队列。与一般的队列(先进先出FIFO)不同的是,优先队列一般是最高级的优先出(即最大的先出)。一开始想到的,可以用堆来维护一个优先队列。不过,python中的堆是一个小根堆,即每次顶部pop出的都是最小值。这样一来,我想到了41. 数据流中的中位数,能不能把数字变负,写入小根堆。后来百度的时候发现,其实Python把优先队列封装在了sortedcontainers模块中,(PS:.原创 2021-02-23 23:13:24 · 3749 阅读 · 3 评论 -
psycopg2.DataError: extra data after last expected column
之前一篇文章对比过几种Python中dataframe写入PG方法的效率问题.insert、to_sql、copy_from 3种写入PG数据库代码效率对比尽管,copy_from方法的写入速度远快于另外两种方式,但在操作过程中还是有些细节需要注意。这次在写入数据的时候,发现出现以下问题:psycopg2.DataError: extra data after last expected column奇怪的是,我在写入数据时明确写明了表中对应的字段cols。进一步打印日志,发现,原因在于:我在原创 2020-10-30 11:02:44 · 6982 阅读 · 0 评论 -
pandas数据处理效率提升方法
在进行业界大规模数据处理及特征工程的时候,往往需要对dataframe进行处理。而处理方式一般人会选择用apply的方式。apply方式进行了一些底层的优化,相比直接对dataframe进行for循环效率高了很多。但是,尽管使用了apply后,依然有很多优化的空间。方法如下:Pandas循环提速7万多倍文中提到了一种用numpy进行优化的方法,但是具体的实施方式说得并不清楚。至于为什么采用numpy会对pandas的循环有如此明显的效果优化,stack overflow给出了解释。那么了解了原创 2020-07-21 15:44:31 · 1655 阅读 · 0 评论 -
XGBOOST与GBDT区别
GBDT是一种较为经典的梯度提升树算法,包括XGBOOST(XGBOOST是GBDT的一个变种)。Boosing算法是一种加法模型,它包含一种残差逼近的思想。GBDT是一种较为经典的梯度提升树算法,包括XGBOOST(XGBOOST是GBDT的一个变种)。GBDT 在函数空间中利用梯度下降法进行优化。XGBOOST在函数空间中利用牛顿法进行优化。且相比GBDT,XGBOOST加入了正则项,使模型更加不容易过拟合。优化方法梯度下降法(Gradient descend method)梯度下降法利原创 2020-06-01 09:26:29 · 1168 阅读 · 0 评论 -
python双向队列deque的基本用法
官方链接:https://docs.python.org/2/library/collections.html#collections.dequedeque是双向队列,其方法与常规的list类似,但是扩展了一些list没有的功能。导入模块from collections import deque定义一个新的队列a = deque()append & appendleft可以从左右两侧添加数据a.append(0)a.appendleft(1)a#deque([1, .原创 2020-05-26 18:06:59 · 2009 阅读 · 0 评论 -
Python堆的基本用法
官方链接:https://docs.python.org/3/library/heapq.html堆,其实是二叉树的一种。Python中的堆其实是小根堆,即每一个父节点都小于等于它的子节点。堆这种结构在leetcode刷题过程中经常遇到。对于一个堆heap来说,它最小的元素总是它的根节点,即heap[0]。对于一个堆来说,它的导入比较简单import heapqheap = []heappush通过heappush方法可以将数字加入堆中heapq.heappush(heap,1).原创 2020-05-19 15:19:18 · 3867 阅读 · 0 评论 -
leetcode反转链表问题
关于反转链表的讲解可以看这篇leetcode解析反转链表的一部分class Solution(object): def reverseBetween(self, head, m, n): """ :type head: ListNode :type m: int :type n: int :rtype: L...原创 2020-04-22 11:20:02 · 325 阅读 · 0 评论 -
Jupyter Notebook添加目录
Jupyter Notebook虽然可以很好地支持Markdown的编辑形式。但是对于较大的文件由于无法生成目录文件,而要逐步查找依然是比较麻烦的事情。因此,这里提供大家一个给Jt添加目录的插件,便于更好的查看Jt文件。这里我以win10为例,为了支持生成目录首先安装好Anaconda。在cmd中依次执行以下两行命令:pip install jupyter_contrib_nbex...原创 2020-03-06 15:32:35 · 897 阅读 · 0 评论 -
matplotlib应用总结
matplotlib作为Python中的可视化模块,因为操作简单而被广泛运用。%matplotlib inline #此行用于避免后期加入plt.show()import matplotlib as mplimport matplotlib.pyplot as plt1.plt有很多风格#查看绘图风格plt.style.available#随便选择一种风格plt.sty...原创 2020-03-04 10:27:24 · 661 阅读 · 0 评论 -
python时间消耗统计
有时候面对比较低效的代码,我们想知道哪一个模块占用的时间比较长,可以有几种方式来分析时间。1.使用cProfile模块这里我们以一个函数为例import cProfiledef foo(): sum = 0 for i in range(100): sum += i return sum进一步,通过以下命令可以查看函数时间占用cPr...原创 2020-02-25 18:33:07 · 2214 阅读 · 0 评论 -
Python的类
Python是一种面向对象的语言。以其中的list数据结构来说,我们知道它存在list.append(),list.remove(),list.sort()等方法。显然,由于list结构的存在,我们可以批量的形成多个list实例,例如A = [1,2,3]B = [3,4,5]显然,这里的list本质上就是一个类,而它存在很重要的一个原因就是可以将类对象进行量产。1.创建一个...原创 2020-02-16 17:06:06 · 2196 阅读 · 0 评论 -
在dataframe中实现SQL的over partition by运用
这里,我们以某个班级不同ID同学,不同科目(Class)的考试成绩(Score)为例。首先生成一个Dataframeimport pandas as pdID = [1,1,1,2,2,2,3,3,3,4,4,4]Class = ['A','B','C','A','B','C','A','B','C','A','B','C']score = [90,80,70,60,80,100,...原创 2019-12-08 15:54:08 · 1716 阅读 · 0 评论 -
Dataframe判断一列中某值是否为空
在对pandas中的dataframe进行apply操作时,经常会遇到某列中存在nan值的情况,需要先进行判断找出这样的值再进行分情况处理。今天在处理一列数据时出错了,这一列的每一行都是一个list,而部分行为nan尝试采用下面方法的时候出错了df['label'].isnull()错误提示:list is not attribute to isnull...最后查看了一下...原创 2019-11-25 17:53:03 · 26679 阅读 · 0 评论 -
python二进制的位运算符
位运算符在刷leetcode和某些极端情况下偶尔会用到。这里,我用python做一个演示,主要涉及与运算符(&),或运算符(^),进位运算符(<<)1.与运算符(&)只有当两个位数相同且都为1时才为11&1#输出为:11&0#输出为:00&0#输出为:01&2#输出为:0(因为2在二进制下为10,...原创 2019-11-24 17:30:45 · 2262 阅读 · 0 评论 -
insert、to_sql、copy_from 3种写入PG数据库代码效率对比
昨天写入PG的时候直接用insert命令拼接字符串被数据库的同事批了,o(╥﹏╥)o这里我测试了3种写入PG数据库的方式,数据源为1个含有13642条数据的csv,并进行了一个对比:1.insert命令写入具体的命令代码见我的这篇文章:https://blog.youkuaiyun.com/weixin_44731100/article/details/88534304可见,写入13642...原创 2019-10-22 11:06:35 · 4073 阅读 · 0 评论 -
python 手写排序算法
1.快排:时间复杂度:O(nlogn)快排的算法中其实包含了一种二分的思维在里面,因此可以用递归的方式简化def qs(L): # 终止条件必须要有 if L == []: return [] axis = L[0] less = qs([i for i in L[1:] if i < axis]) more = qs([j for j...原创 2019-10-18 10:09:10 · 746 阅读 · 0 评论 -
pandas生成笛卡尔积并填充日数据
最近在做一个时间序列问题,遇到了一个分析每条线路在指定4天的运输量计算问题。通过筛选可见问题如下图:df_test[df_test.zdtseq.isin(['1000023422','1000026402','1000031053'])]我们可以发现两条线路都有完整4天的数据(0913-0916),但是1000031053线路只有1天的数据这可能是由于线路在这些日期运输量为0而...原创 2019-10-17 10:36:04 · 2102 阅读 · 0 评论 -
python中sys.stdout和sys.stderr
最近,在发布脚本上线时,想要把输出结果和错误记录保存成日志(log),方便查看。这样一来就用到了重定向:sys模块的stdout和stderr1.stdout查看stdout的介绍可见(https://docs.python.org/3/library/sys.html)stdoutis used for the output ofprint()andexpression...原创 2019-03-18 17:24:51 · 26828 阅读 · 5 评论 -
python读取和写入PostgreSQL问题总结
Python读取PostgreSQL数据流程如下:import psycopg2#连接数据库conn = psycopg2.connect(database = 'name', user = 'admin', password = '123456', host = '10.10.10.10', port = '5432')curs=conn.cursor()#编写Sql,只...原创 2019-03-13 16:22:41 · 14093 阅读 · 1 评论 -
给定两点经纬度坐标计算距离
最近在做一个实时的运筹优化项目,需要针对给定的两点经纬度,计算其距离。这里我参考了维基百科的Haversine formula公式:其中:φ1,φ2: latitude of point 1 and latitude of point 2, λ1,λ2: longitude of point 1 and longitude of point 2.因此这里我根据以上...原创 2019-04-18 20:20:03 · 6487 阅读 · 4 评论 -
Anaconda中的Spyder进行断点调试
作为一个入门的算法工程师,你是不是在每一次出bug后,都要重新运行整个程序,查看是否报错呢?实际上,在anaconda中有一排类似绿色运行标志的蓝色标志(如下),机智的你可能已经猜到了。对,这就是用于debug的按键。蓝色的代码从左到右依次为:1.进入调试按钮(Debug File),程序到达你设置的第一个断点,这是进入断点调试必须的第一步;2.单步调式按钮(Run c...原创 2019-05-14 11:21:43 · 11468 阅读 · 0 评论 -
用户-商品矩阵转化及稀疏矩阵CSC,CSR,COO三种形式生成
做推荐算法的同学,应该经常会用到基于用户-商品矩阵的协同过滤算法。然而在项目的初期,我们其实只能获得每个用户对于商品的评分表sdf(如下):针对这样的表,我们需要在python里进行一下转换1.先生成一个基于用户和产品的dataFramen_users = sdf['user_id'].unique() #获得所有用户的idn_items = sdf['item...原创 2019-05-15 21:12:23 · 3321 阅读 · 0 评论 -
python写入中文json
在做项目的过程中,有时候我们需要用json文件来直观的反应某种隐射关系。json的数据结构类似于词典(dict)这里总结下最近在写入json的过程中遇到的问题:1.读写文件json的主要方法有两种json.dumps和json.loads。详细说明可阅读这篇文章(https://www.cnblogs.com/bigberg/p/6430095.html)这里我们定义一个名为d...原创 2019-06-05 16:27:24 · 19010 阅读 · 1 评论 -
在linux环境中安装jieba模块
最近在linux环境中发布python脚本的时候,发现环境中的jieba模块不存在。这时候为了在linux环境中安装jieba模块,先下载压缩包:jieba-0.39.zip1.本地解压后得到以下文件2.将此文件上传至linux系统的某文件夹下,如图3.随后转至linux上放置jieba的文件夹,并运行命令: python setup.py build4.随后运行命...原创 2019-07-04 17:59:31 · 4296 阅读 · 0 评论 -
pandas 读取dict和list操作
在用pandas读取dict和list的时候,依据结构和需求不同,我们可能需要生成不同格式的DataFrame,这里我总结了下我最近遇到的一些读取操作1.读取dict这里我们以一个字典为数据,看下不同操作的结果有何不同data = {'a':[1,2],'b':[2,3]}(1)直接调用DataFrame进行读取的话,生成的DataFrame结构如下:pd.DataFram...原创 2019-07-19 11:21:18 · 25876 阅读 · 0 评论 -
pandas版本异常导致ValueError,error detail is:could not broadcast input array from shape (7) into shape (5)
今早,在启动服务器上的python任务的时候出现了报错ValueError,error detail is:could not broadcast input array from shape (7) into shape (5)但奇怪的是,这个脚本我已经运行了一周没有任何错误。而且,我按照此代码在本地运行,如何也没有出现错误。查询后,我在Stack Overflow看到关于这个...原创 2019-07-31 14:38:41 · 3837 阅读 · 0 评论 -
python中如何判断一个字符串是否可以转换为数字
python自身提供了三种判断字符串是否可以转化成数字的方式:1. isdigit()True: Unicode数字,byte数字(单字节),全角数字(双字节)False: 汉字数字,罗马数字,小数Error: 无我们随机输入一些字符串测试:2.isdecimal()True: Unicode数字,,全角数字(双字节)False: 罗马数字,汉字数字,小数...原创 2019-08-08 17:17:55 · 25300 阅读 · 3 评论 -
Python转化时间格式的字符串
Python处理时间格式的字符串,每次遇到都要百度,这里就这个问题进行下总结。转化时间字符串,主要用到的是datetime这个模块。比如你想把时间字符串‘20190801’转换成‘2019-08-01’这种格式,当然你可以暴力的拆解拼接字符串。不过在datetime模块中主要用到了两个方法:strptime和strftime。1.strptime用于将字符串转换成可识别的时间格...原创 2019-08-13 22:27:49 · 9187 阅读 · 0 评论 -
jupyter notebook利用markdown插入图片
jupyter notebook利用markdown插入图片有两种方式1.网页图片网页图片相对比较简单,在网上找到图片链接markdown格式下输入以下内容即可: if pd.isnull(conf): return 0 else: ...原创 2019-08-16 12:56:05 · 6123 阅读 · 0 评论 -
Keras神经网络参数说明
最近用到了Keras中的LSTM神经网络,keras中运用序贯模型(sequential)建立一个层层叠加的模型非常方便。但是比较懵逼的一点是,model.add()中的参数完全不理解,比如input_dim,input_shape,各种用法都有,完全不理解有什么区别。这里我以一个时间序列的模型为例:我的输入和输出结果size如下因为是传统的时间序列,所以特征只有一个维度,因此...原创 2019-08-21 17:33:31 · 7113 阅读 · 0 评论 -
numpy插入数据方法append和insert
最近在项目中用到LSTM预测,涉及到了大量的numpy数据处理工作。尤其是numpy的增加数据处理,和pandas及list很不一样。目前,插入有两种方式:np.append和np.insert1.np.append能对多维的数组进行操作例如,这里X_test是一个shape为(1,40,1)的数组,我们想向中间的维度(40)添加一个数字1,并删除第一个数字.........原创 2019-09-06 16:42:34 · 43195 阅读 · 0 评论 -
try...except精准返回错误信息
try...except...监测一段代码,想要准确的定位错误类型与错误明细举个栗子,我们想要找到列表a的第四个值,然而其实并不存在...1.写成'except Exception as e'的形式这时候,代码只要写成下面这样就好了:a = [1,2,3]try: a[3]except Exception as e: print('错误类型是',e.__cl...原创 2019-03-13 14:34:30 · 2096 阅读 · 0 评论