![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python
文章平均质量分 61
Ding_xiaofei
程序员
展开
-
Python读取文本常见的编码问题
开篇当我们刚刚开始学习处理大量的文本数据的时候,总是会在读取数据这一块出现卡壳,尤其是像我这种根本没有任何指导的小白,千里之行刚刚迈出第一步就宣告结束了,这种情况往往出现在我们自己爬取的一些网络文本,一般是TXT文件。下面就让我们看看具体怎么解决这样的问题。读取文本数据这边我们主要讲关于文本的读取,涉及到二进制文件的读取就不多提了。首先让我们看看,正常的情况下,我们是怎么样去读取一...原创 2018-05-02 15:17:13 · 3352 阅读 · 1 评论 -
数据结构与算法(python)
开篇使用python来实现一些算法和数据结构,大部分内容来自于各个书籍和网络资源,不定期更新,这是一个目录。点击相应的目录就可以跳到相应的博客。目录...原创 2018-06-10 14:13:42 · 810 阅读 · 1 评论 -
解压序列赋值给多个变量
问题现在有一个包含 N 个元素的元组或者是序列,怎样将它里面的值解压后同时赋值给 N 个变量?解决方案>>> p = (4, 5)>>> x, y = p>>> x4>>> y5>>>>>> data = [ 'ACME', 50原创 2018-06-10 14:18:56 · 551 阅读 · 0 评论 -
解压可迭代对象赋值给多个变量
问题如果一个可迭代对象的元素个数超过变量个数时,会抛出一个 ValueError 。那么怎样才能从这个可迭代对象中解压出 N 个元素出来?解决方案Python 的星号表达式可以用来解决这个问题。比如,你在学习一门课程,在学期末的时候,你想统计下家庭作业的平均成绩,但是排除掉第一个和最后一个分数。如果只有四个分数,你可能就直接去简单的手动赋值,但如果有 24 个呢?这时候星号表达式就派上...原创 2018-06-10 14:37:36 · 289 阅读 · 0 评论 -
保留最后 N 个元素
问题在迭代操作或者其他操作的时候,怎样只保留最后有限几个元素的历史记录?解决方案保留有限历史记录正是 collections.deque 大显身手的时候。 使用 deque(maxlen=N) 构造函数会新建一个固定大小的队列。当新的元素加入并且这个队列已满的时候,最老的元素会自动被移除掉。>>> q = deque(maxlen=3)>>>...原创 2018-06-10 14:55:54 · 465 阅读 · 0 评论 -
查找最大或最小的 N 个元素
问题怎样从一个集合中获得最大或者最小的 N 个元素列表?解决方案heapq 模块有两个函数: nlargest() 和 nsmallest() 可以完美解决这个问题。import heapqnums = [1, 8, 2, 23, 7, -4, 18, 23, 42, 37, 2]print(heapq.nlargest(3, nums)) # Prints [42, 37, ...原创 2018-06-10 15:27:42 · 497 阅读 · 0 评论 -
通过某个关键字排序一个字典列表
问题你有一个字典列表,你想根据某个或某几个字典字段来排序这个列表。解决方案通过使用 operator 模块的 itemgetter 函数,可以非常容易的排序这样的数据结构。假设你从数据库中检索出来网站会员信息列表,并且以下列的数据结构返回:rows = [ {'fname': 'Brian', 'lname': 'Jones', 'uid': 1003}, {'fn...原创 2018-07-02 07:24:50 · 1112 阅读 · 0 评论 -
numpy生成随机数的方法
待更新原创 2018-07-02 23:15:49 · 2045 阅读 · 0 评论 -
序列中出现次数最多的元素
问题怎样找出一个序列中出现次数最多的元素呢?这个在统计词频中经常被使用到解决方案collections.Counter 类就是专门为这类问题而设计的,它甚至有一个有用的most_common() 方法直接给了你答案。 为了演示,先假设你有一个单词列表并且想找出哪个单词出现频率最高。你可以这样做:words = ['look', 'into', 'my', 'eyes', '...原创 2018-06-28 09:18:03 · 1139 阅读 · 0 评论 -
命名切片
问题你的程序已经出现一大堆已无法直视的硬编码切片下标,然后你想清理下代码。解决方案一般来讲,代码中如果出现大量的硬编码下标值会使得可读性和可维护性大大降低。比如,如果你回过来看看一年前你写的代码,你会摸着脑袋想那时候自己到底想干嘛啊。这里的解决方案是一个很简单的方法让你更加清晰的表达代码到底要做什么。 内置的 slice() 函数创建了一个切片对象,可以被用在任何切片允许使用的地方。...原创 2018-06-16 10:12:02 · 273 阅读 · 0 评论 -
删除序列相同元素并保持顺序
问题怎样在一个序列上面保持元素顺序的同时消除重复的值?解决方案如果序列上的值都是 hashable 类型,那么可以很简单的利用集合或者生成器来解决这个问题。比如:def dedupe(items): seen = set() for item in items: if item not in seen: yield item...原创 2018-06-16 09:56:43 · 401 阅读 · 0 评论 -
TensorFlow与NLP(词向量:skip-gram)
开篇前面已经讲了两种表示文本特征的向量化方法了,到这里也可以进入我们的词向量了,词向量是近几年来NLP领域最重要的研究成果之一,我们现在再看一些基本的NLP任务也基本上再也离不开词向量的身影,今天我们就用代码的层面来看看它到底是什么?word2vec...原创 2018-05-10 10:49:56 · 3615 阅读 · 0 评论 -
京东手机评论分析(一):词云
开篇先做一些简单的评论分析吧,大部分还是借助于不同的python工具,不得不说很多中文的基本任务还是做得效果比较一般的,毕竟中文的复杂程度可不是英文可以比拟的,这篇就是简单地生成一个词云,是以词频为主的,姑且把高频词当做关键词吧,其实你看了下面我分析oppo r15的结果,你就会发现,其实还是有那么一点靠谱的。可能下面的内容比我开篇的废话还要少。词云的生成数据集的介绍在我的这篇博客,下...原创 2018-05-17 21:22:31 · 2186 阅读 · 0 评论 -
常见的NLP处理手段和相应的spaCy库使用
开篇这篇博客主要讲的是关于英文的一些处理,关于中文的一些nlp处理后续有机会补上。本文主要有以下几个内容:基于规则的预处理常规预处理spaCy库的常规使用pointer-generator关于预处理预处理是很多NLP任务的基础,一个好的预处理对后续的NLP结果有很重要的影响。首先是关于分词的一些问题,中文分词是老大难问题,不太好分,英文就简单得多了,但是英文还是会出现一些...原创 2018-05-08 09:43:34 · 6776 阅读 · 3 评论 -
吴恩达DeepLearning.ai课程编程实践(一)
开篇同样作为深度学习的入门系统博客吧,希望闲时能够花个不到一个小时理一下吴恩达老师课程里面涉及到的编程,当然学习这些知识的前提是,你能够使用python编程。这边我不限定内容的长短,每篇不完成固定的内容,如果不全,那么就下篇再见。sigmoid function常见的激活函数,缺点就不提了,二分类任务的输出层比较常见,下面是它的函数图 它的实现import mathde...原创 2018-05-14 20:33:22 · 266 阅读 · 0 评论 -
字典中的键映射多个值
问题怎样实现一个键对应多个值的字典(也叫 multidict)?解决方案一个字典就是一个键对应一个单值的映射。如果你想要一个键映射多个值,那么你就需要将这多个值放到另外的容器中,比如列表或者集合里面。比如,你可以像下面这样构造这样的字典:d = {'a' : [1, 2, 3],'b' : [4, 5]}e= {'a' : {1, 2, 3},'b' : {4, 5}...原创 2018-06-14 14:08:34 · 1680 阅读 · 0 评论 -
字典排序
问题创建一个字典,并且在迭代或序列化这个字典的时候能够控制元素的顺序。解决方案为 了 能 控 制 一 个 字 典 中 元 素 的 顺 序, 你 可 以 使 用 collections 模 块 中 的OrderedDict 类。在迭代操作的时候它会保持元素被插入时的顺序,示例如下:from collections import OrderedDictd = OrderedDict(...原创 2018-06-14 14:14:05 · 477 阅读 · 0 评论 -
字典的运算
问题怎样在数据字典中执行一些计算操作(比如求最小值、最大值、排序等等)?ps:这个在机器学习里面经常会碰到类似的问题解决方案考虑下面的股票名和价格映射字典:prices = { 'ACME': 45.23, 'AAPL': 612.78, 'IBM': 205.55, 'HPQ': 37.20, 'FB': 10.75}为了对字典值...原创 2018-06-15 09:13:32 · 589 阅读 · 0 评论 -
查找两字典的相同点
问题怎样在两个字典中寻寻找相同点(比如相同的键、相同的值等等)?解决方案a = { 'x' : 1, 'y' : 2, 'z' : 3} b= { 'w' : 10, 'x' : 11, 'y' : 2}为了寻找两个字典的相同点,可以简单的在两字典的 keys() 或者 items() 方法返回结果上执行集合操作。比如:...原创 2018-06-15 09:23:08 · 459 阅读 · 0 评论 -
python3中不能打开带中文url的解决方案
一个编码报错UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 11-13: ordinal not in range(128)UnicodeEncodeError: 'ascii' codec can't encode characters in position 11-13: ordinal not i...原创 2019-01-23 21:28:46 · 1282 阅读 · 1 评论