
Python
笛在月明
我们采集的只是石头,却必须时刻展望未来的大教堂。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据科学系列(一)Kaggle如何入门?
学习数据科学的最好方法是在练习中学。如果可以回到过去,我想告诉三年前的自己:去Kaggle注册一个账号,并且开启你的比赛之旅。尽管 Kaggle 和经典数据科学之间存在差异,但 Kaggle 仍然是一种很好的入门工具。作为一个流行的数据科学竞赛平台,Kaggle提供了许多企业中的实际问题和丰富的数据集供我们练习和探索。2017年3月谷歌收购了Kaggle。斯坦福大学人工智能实验室与视觉实验室负责...原创 2018-12-20 22:19:24 · 866 阅读 · 0 评论 -
平衡数
假定我们定义一个数值序列可以被分成两部分,使得这两部分的乘积相等,这样的数列为平衡数,如1236中,1*2*3=6, 为平衡数。现给定一个数列,判断是否为平衡数。 分析: 此题有多种解法,首先最原始的想法是顺次设置分隔符,然后比较分割后的两个子串的乘积,为了提高检查效率,可以首先过滤掉非完全平方数,即数字开方后不为整型的数字,但是这样增加了计算复杂度。 def balance_num_ini原创 2017-03-24 15:22:53 · 1846 阅读 · 0 评论 -
python进行桶排序与基数排序总结
本文首先举例阐述了两种排序方法的操作步骤,然后列出了用python进行的实现过程,最后对桶式排序方法的优劣进行了简单总结。一、桶排序:排序一个数组[5,3,6,1,2,7,5,10]值都在1-10之间,建立10个桶:[0 0 0 0 0 0 0 0 0 0] 桶[1 2 3 4 5 6 7 8 9 10] 桶代表的值遍历数组,第一个数字5,第五个桶加1[0 0 0 0 1 0 0 0 0原创 2017-02-02 20:29:54 · 3140 阅读 · 0 评论 -
查找单词是否存在于单词表格中
问题: 给定一个2维字母组成的矩阵,水平或垂直的字母可以连成一个单词,给定一个单词,判断其是否在给定的矩阵中。每个字母只能被使用一次。 举例: [ [‘A’,’B’,’C’,’E’], [‘S’,’F’,’C’,’S’], [‘A’,’D’,’E’,’E’] ] 则根据规则:”ABCCED”, -> returns true, “S原创 2017-01-24 22:46:56 · 1596 阅读 · 0 评论 -
有序数组旋转后的元素值查找
假定有一个升序排序的有序数组,在某个位置进行了分组交换,保持交换后的循环方向不变,如0 1 2 4 5 6 7可能会变成 4 5 6 7 0 1 2,前后收尾连成环,仍然保持不变,现有一个旋转后的数组,如何寻找他的旋转点呢?def search(self, nums, target): if not nums: return -1 low, hi原创 2017-01-21 23:28:14 · 879 阅读 · 0 评论 -
使用sklearn与pybrain预测搜索相关性实战
一、问题背景 在电商网站中,用户对商品进行搜索得到的结果是否与预期相关影响网站的用户体验,因此研究如何提高用户搜索的结果与预期的相关性是一个有意义和有意思的问题。本文将利用人工评分标注的数据集和一些模型预测相关性。 二、思路 数据集的训练集字段包括用户搜索项、搜索结果,人工评分的中位数(分类变量,分别为1,2,3,4)和方差。因此,此问题可以被看做对标签的分类问题。 建模流程为: 三、结果原创 2017-01-21 10:42:15 · 1301 阅读 · 0 评论 -
Python模块: collections
转自:http://www.zlovezl.cn/articles/collections-in-python/ Python作为一个“内置电池”的编程语言,标准库里面拥有非常多好用的模块。比如今天想给大家 介绍的 collections 就是一个非常好的例子。 基本介绍我们都知道,Python拥有一些内置的数据类型,比如str, int, list, tuple, dict等, colle转载 2017-02-20 10:11:08 · 535 阅读 · 0 评论 -
python使用mysqldb连接数据库操作方法示例详解
最近用到了scrapy与mysql的交互,为了方便下次查看,总结了一下基本的操作,以备后续使用~# -*- coding: utf-8 -*- #mysqldb import time, MySQLdb #连接 conn=MySQLdb.connect(host="localhost",user="root",passwd="",db="test",charset="u原创 2017-01-19 22:38:39 · 1108 阅读 · 0 评论 -
Intersection of Two Linked Lists
Write a program to find the node at which the intersection of two singly linked lists begins.For example, the following two linked lists:A: a1 → a2 ↘原创 2017-01-18 22:33:10 · 506 阅读 · 0 评论 -
Linked List Cycle
Given a linked list, determine if it has a cycle in it.解法一: 先建一个节点,然后遍历这个链表,每遍历一个节点,就让这个节点指向刚刚新建的那个节点,这样如果有循环,那么它回来之后的next就会指向那个节点,那么就代表有循环。代码如下:# Definition for singly-linked list.# class ListNode:原创 2017-01-17 22:30:35 · 461 阅读 · 0 评论 -
pandas库介绍之DataFrame基本操作
怎样删除list中空字符? 最简单的方法:new_list = [ x for x in li if x != ” ]设有DataFrame结果的数据a如下所示: a b cone 4 1 1two 6 2 0three 6 1 6一、查看数据(查看对象的方法对于Series来说同样适用) 1.查看DataFrame前xx行或后xx行a=转载 2017-01-01 11:50:37 · 1273 阅读 · 0 评论 -
pandas易错点总结
1.按照多个条件筛选时,应当使用&而不是and,如: lc.loc[(lc[“grade”] == “B”) & (lc[“loan_amnt”] > 5000)] 2. 单一series赋值给series之前需要转换数据格式,如int,float,datetime 3. loc,iloc,ix区别 loc按索引名称取值,如:import pandas as pddata = [[1,原创 2017-10-10 15:59:02 · 617 阅读 · 0 评论 -
jupyter notebook MemoryErrory
今天在一台新笔记本上第一次使用jupyter的时候,出现了MemoryError,查看了笔记本内存,一共8G,使用了不到4G,所以应该不是笔记本本身的内存限制,查找了资料,发现如果在64位笔记本上安装了32位的python,可能会导致这个问题。于是重新卸载了python32位(卸载只需要重新运行一下安装程序,选择unistall即可),安装了64位python,问题解决。原创 2017-12-23 09:11:23 · 8764 阅读 · 1 评论 -
leetcode 树相关题目小结
leetcode 98. Validate Binary Search Tree Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is defined as follows: The left subtree of a node conta...原创 2018-05-13 15:07:49 · 1681 阅读 · 0 评论 -
使用tensorflow seq2seq进行时间序列预测
时间序列预测可以根据短期预测,长期预测,以及具体场景选用不同的方法,如ARMA、ARIMA、神经网络预测、SVM预测、灰色预测、模糊预测、组合预测法等等。所谓没有最好的模型,只有最适合的模型。至于哪一种模型能针对特定预测问题达到最高的精度,需要通过实验来证明。本文通过生成的随机数利用tensorflow的seq2seq模型进行单变量时间序列预测实验,目的是理解seq2seq的模型基础架构以及验证模...原创 2018-05-11 16:56:52 · 16835 阅读 · 12 评论 -
单调栈
单调栈是一种特殊的栈,栈内元素保持递增或者递减。 单调栈有两个性质: 1.满足从栈顶到栈底的元素具有严格的单调性 2.满足栈的后进先出特性越靠近栈底的元素越早进栈 利用单调栈,可以找到从左/右遍历第一个比它小/大的元素的位置,在某些问题中可以将时间复杂度从O(N^2)降低为O(N).如leetcode 84. Largest Rectangle in Histogram. 这道题的描述...原创 2018-05-11 15:44:16 · 824 阅读 · 0 评论 -
leetcode 23. Merge k Sorted Lists 几种解法
1.取值排序法 首先我们最先想到的可能是将所有链表的值放进一个数组中,然后进行排序,最后将排序后的元素依次构建新的链表。代码如下: class Solution(object): def mergeKLists(self, lists): """ :type lists: List[ListNode] :rtype: ListNo...原创 2018-05-03 22:40:51 · 572 阅读 · 0 评论 -
使用Python的SnowNLP模块实现情感分析
SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和TextBlob不同的是,这里没有用NLTK,所有的算法都是自己(不是本人)实现的,并且自带了一些训练好的字典。 计算情感值的示例如下:from snownlp import Sn...原创 2016-02-27 19:31:25 · 23234 阅读 · 4 评论 -
Datacastle算法竞赛-精品旅行服务成单预测-AUC:0.94+解决方案
Datacastle在前一段时间发布了一个算法竞赛-精品旅行服务成单预测。当时空闲时间比较多就报名参加了,后面为了赶论文进度没有继续做下去,最后的一次提交结果是0.94+的auc。共计提取了76个特征,分别使用了基于权重和stacking的模型融合方法,下面是对特征和模型的一些整理。 一、特征 1.基本信息:如用户性别,省份,年龄等。 2.历史订购信息:之前是否购买过精品,订购每种类型订单的...原创 2018-02-13 19:35:13 · 1723 阅读 · 11 评论 -
微信小程序跳一跳辅助程序指北
一、本实验测试环境: Win7 64位+华为荣耀9 二、准备: 电脑与手机均安装豌豆荚,手机调到微信小程序跳一跳首页界面。 三、使用方法 1.启动adbadb start-server 可能出现的错误1: C:\Users\Admin>adb devices List of devices attached 重启动adb kill掉adb adb kill...原创 2018-02-05 15:50:48 · 983 阅读 · 0 评论 -
变位词
变位词是指由变换个别词或短语的字母顺序构成的新的词或短语,例如“triangle”是“integral”的变位词。今天要解决的问题是编写一个方法,对字符串数组进行排序,将所有变位词排在相邻的位置。 分析: 由于变位词仅仅是不同字符串的字符顺序不同,比较简单的一种想法是将所有字符串内部字符进行排序,若两个字符串互为变位词,则排序后就相同,另外一种方法是数一下各个字符串中各个字符出现的次数,如...原创 2018-02-13 17:27:55 · 1215 阅读 · 0 评论 -
python求list中重复元素最后一个value位置
这个问题如果换成求第一个value的位置,可以使用list.index(value)来求,倘若使用enumerate也未尝不可:def unique_index(L,e): return [j for (i,j) in enumerate(L) if i == e]由于是求最后一个出现的位置,因此可以采取更为简单的方法。就是将列表反转,然后求第一个元素。原创 2018-01-01 09:12:19 · 6015 阅读 · 1 评论 -
Longest Common Prefix
Write a function to find the longest common prefix string amongst an array of strings.解法一: 巧妙运用zip函数class Solution: # @return a string def longestCommonPrefix(self, strs): if not s原创 2017-01-15 15:39:26 · 989 阅读 · 0 评论 -
Trie树实现词频统计与查找
#encoding:utf-8from collections import defaultdictimport sysreload(sys) sys.setdefaultencoding('utf8') class LBTrie: """ simple implemention of Trie in Python. """ def __ini原创 2017-01-15 14:56:55 · 2478 阅读 · 0 评论 -
python实现概率生成器
《Introduction to data mining》中有一个例子:假设有10组相同大小不同种类的数,从中随机选取R个,R属于0-60的范围,每种样本大小下10种类型都被选中的概率的变化趋势是怎样的。通过使用随机数生成进行抽样实验,可以得到概率的走势。代码如下:import randomimport pylab as pldef _getAnswer(sample): dic={原创 2016-09-19 20:59:12 · 5727 阅读 · 0 评论 -
defaultdict的使用场景
Python标准库中collections对集合类型的数据结构进行了很多拓展操作,这些操作在我们使用集合的时候会带来很多的便利,多看看很有好处。defaultdict是其中一个方法,就是给字典value元素添加默认类型,之前看到过但是没注意怎么使用,今天特地瞅了瞅。首先是各大文章介绍的第一个例子:import collections as coll def default_factory():转载 2016-10-04 15:52:58 · 677 阅读 · 0 评论 -
字典双重排序
''''----python3----Find the count of characters in a string and sort them according to the count, if the alphabeticals have the same count, output them in a alphabetical order.'''def sortString(s):原创 2016-09-30 22:17:53 · 797 阅读 · 0 评论 -
python可视化之散点图的绘制
我们仍然以Iris数据集为例进行散点图的绘制,为了对不同的cell进行区分,我们需要使用plt.sca(cell)指明cell所在的位置。此外,如果使每个cell的横纵坐标的比例尺相等,可以在plt.subplots中添加额外的参数 sharex=True, sharey=True,在本例中不同的属性具有不同的scale,所以我们不需要设置相同的比例尺。实现的方法如下,欢迎各位指教。from mat原创 2016-09-15 10:47:54 · 1855 阅读 · 0 评论 -
寻找和为定值的两个数
描述: 输入一个数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(N)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。分析: 如果采取穷举,复杂度为O(N^2),可以换一个思路,题目相当于对每个a[i],查找sum-a[i]是否也在原始序列中,每一次要查找的时间都原创 2016-08-26 21:24:11 · 839 阅读 · 0 评论 -
python栈的实现
本文以实例形式展示了Python算法中栈(stack)的实现,对于学习数据结构域算法有一定的参考借鉴价值。具体内容如下:1.栈stack通常的操作:Stack() 建立一个空的栈对象 push() 把一个元素添加到栈的最顶层 pop() 删除栈最顶层的元素,并返回这个元素 peek() 返回最顶层的元素,并不删除它 isEmpty() 判断栈是否为空 size() 返回栈中原创 2016-09-17 22:25:35 · 674 阅读 · 0 评论 -
job爬虫
# -*- coding:utf-8 -*-import re,jsonimport urllibfrom pandas import DataFrame,Seriesimport pandas as pd# 处理字符串的函数def ProcessingString(string): string = string.decode('utf-8','ignore').encode('u原创 2016-08-09 15:27:01 · 803 阅读 · 0 评论 -
python链表操作
输入一个链表,从尾到头打印链表每个节点的值。 分析:在C/C++中,通常采用“指针+结构体”来实现链表;而在Python中,则可以采用“引用+类”来实现链表。使用切片操作[::-1]反转列表,在获取节点值之前,需要判断节点是否为空。此外,append也可以使用extend,二者的区别可以参考http://stackoverflow.com/questions/252703/append-vs-e原创 2016-08-18 11:11:34 · 934 阅读 · 0 评论 -
python set和list
python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算. sets 支持 x in set, len(set),和 for x in set。作为一个无序的集合,sets不记录元素位置或者插转载 2016-07-24 09:51:45 · 840 阅读 · 0 评论 -
欧氏距离比较相似度的python实现
# -*- coding: utf-8 -*-import xlrdimport xlwtimport unicodedataworkbook = xlrd.open_workbook(r'C:\Users\wangqiqi\Desktop\classify.xlsx')#读取sheet1工作簿获取待分类数据def read_sheet1(): sheet1 = workbook.原创 2016-07-23 20:29:04 · 3420 阅读 · 0 评论 -
python中求分布函数相关的包
为了了解(正态)分布的方法和属性,我们首先引入norm >>>from scipy.stats import norm >>>rv = norm() >>>dir(rv) # reformatted[‘__class__’, ‘__delattr__’, ‘__dict__’, ‘__doc__’, ‘__getattribute__’,‘__hash__’, ‘__init__’, ‘_原创 2016-10-05 19:33:54 · 9389 阅读 · 0 评论 -
堆排序的python实现
堆排序是利用堆(大顶堆或小顶堆都可)的性质,每次从堆顶取一个元素,然后对堆重新调整,最后完成排序的排序算法,时间复杂度和快速排序、归并排序一样都是O(n*log n)。并且堆的最坏时间复杂度和最优时间复杂度都是O(n*log n),比较稳定。由于需要建立一个堆,所以空间复杂度是n。# -*- coding: utf-8 -*-"""https://zh.wikipedia.org/zh/%E5%原创 2016-10-06 09:37:44 · 1220 阅读 · 0 评论 -
最大子列和问题
描述: 给定KKK个整数组成的序列{ N1N_1N1, N2N_2N2, …, NKN_KNK },“连续子列”被定义为{ NiN_iNi, Ni+1N_{i+1}Ni+1, …, NjN_jNj },其中 1≤i≤j≤K1 \le i \le j \le K1≤i≤j≤K。“最大子列和”则被定义为所有连续子列元素的和中最大者。例如给定序列{ -2原创 2016-08-21 16:54:54 · 1180 阅读 · 0 评论 -
定和因子组合的最小值
# -*- coding: utf-8 -*-'''输入一个正整数x,返回一个各位(个十百千万等)数字相乘为x的最小的数; 例如: 15 则返回 35 (因为3*5=15,35比53要小)'''def mulcum(n): minc=0 l=[] if n<0: return -1 for原创 2016-09-11 22:59:46 · 724 阅读 · 0 评论 -
python实现快速排序算法
很多基础的算法只看不写很容易忽略其中的细节,对于既不浪费空间又可以快一点的快速排序算法,用python重新实现了一遍,下面具体的实现方法,仅供参考。def quicksort(left,right): if left>right: return temp=a[left] i=left j=right while i!=j: whi原创 2016-09-16 15:29:05 · 553 阅读 · 0 评论 -
字符串匹配
在进行字符串匹配时,发现逻辑没有什么问题,但是匹配不到正确的结果,比如:if re.search(trans_word0,txtlist[fc]) and re.search(trans_word1,txtlist[fc]) and re.search(trans_word2,txtlist[fc]): freq[word] = freq.get(word, 0) + 1 t原创 2016-10-13 08:45:57 · 480 阅读 · 0 评论