
python
文章平均质量分 86
愤怒的可乐
主要研究NLP、深度学习、大模型。
展开
-
《流畅的Python第二版》读书笔记——函数中的类型注解
函数中的类型注解/注释原创 2022-11-02 09:06:18 · 1000 阅读 · 2 评论 -
《流畅的Python第二版》读书笔记——函数作为一等对象
函数是Python的一等(first-class)对象!原创 2022-10-14 09:08:52 · 684 阅读 · 0 评论 -
《流畅的Python第二版》读书笔记——对象引用、可变性和垃圾回收
讨论对象标识、值和别名、引用和函数参数以及垃圾回收等知识。原创 2022-10-13 09:02:25 · 903 阅读 · 1 评论 -
《流畅的Python第二版》读书笔记——数据类构建器
Python提供了一些方法来构建一个只是字段集合的简单类,几乎没有其他功能。该模式被称为一个“数据类”。本文主要介绍三个不同的编写数据类的构建器。原创 2022-10-10 09:08:45 · 1054 阅读 · 0 评论 -
《流畅的Python第二版》读书笔记——文本和字节序列
主要讨论 Unicode 字符串、字节序列,以及在二者之间转换时使用的编码。原创 2022-09-28 09:07:06 · 1258 阅读 · 0 评论 -
《Effective Python 2nd》——元类与属性
引言元类(metaclass)能够拦截Python的class语句,让系统每次定义类的时候,都能实现某些特殊的行为。Python还内置了一种神奇而强大的特性,可以动态地定制属性访问操作。#44 用纯属性与修饰器取代旧式的setter与getter方法从其他编程语言转入Python的开发者,可能想在类里面明确地实现getter与setter方法。class OldResistor: def __init__(self, ohms): self._ohms = ohms原创 2021-12-14 20:09:47 · 889 阅读 · 0 评论 -
《Effective Python 2nd》——类与接口
引言Python的类与继承机制,让我们很容易就能用对象表达出程序应有的行为,而且可以逐渐改进并扩展这些行为。#37 用组合起来的类来实现多层结构,不要用嵌套的内置类型Python内置的字典类型,很适合维护对象在生命期内的动态内部状态。所谓动态的,是指我们无法获知那套状态会用到哪些标识符。例如,如果要用成绩册(Gradebook)记录学生的分数,而我们又没有办法提前确定这些学生的名字,那么受到记录的每位学生与各自的分数,对于Gradebook对象来说,就属于动态的内部状态。为了实现这个需求,笔者定义原创 2021-09-08 20:41:42 · 734 阅读 · 0 评论 -
《Effective Python 2nd》——推导与生成
Python提供了一种特殊的写法,叫做推导(comprehension),可以简洁地迭代列表、字典和集合等数据结构,并根据迭代结果生成另一套数据。Python把这种理念也运用到了函数上面,产生了生成器(generator),它可以让函数每次返回一系列值中的一个。凡是可以使用迭代器的任务都支持生成器函数。原创 2021-06-23 21:22:25 · 484 阅读 · 1 评论 -
《Effective Python 2nd》 读书笔记——函数
Python函数提供了许多能够简化编程工作的特性,有些是Pythton特有的。这些特性能够更明确地体现出函数的目标。原创 2021-06-13 17:43:45 · 808 阅读 · 2 评论 -
《Effective Python 2nd》 读书笔记——列表与字典
Python提供了一些特殊的语法和内置的模块,能够扩充列表与字典的能力,让我们可以用清晰的代码实现很多强大的功能。原创 2021-06-06 16:14:36 · 531 阅读 · 0 评论 -
《流畅的Python第二版》读书笔记——字典和集合
字典类型不仅广泛地应用于我们的程序,而且是Pthon实现的基础。类和实例的属性、模型命名空间和函数的关键词参数都是通过字典表示的。本文新增对Python压缩字典和保持插入顺序的详细解读。原创 2021-06-04 17:36:54 · 1247 阅读 · 3 评论 -
《Effective Python 2nd》 读书笔记——培养Pythonic思维
Pythonic思维代表极简思维,Python开发者不喜欢写复杂的代码,喜欢用直观、简洁且易读的方式来编写。本文就一些常见常见如何利用Pythonic思维来编程就行说明。原创 2021-05-11 22:38:48 · 800 阅读 · 0 评论 -
《Effective Python 2nd》 读书笔记
这是 Effecive Python 2nd 的读书笔记原创 2021-05-11 22:07:41 · 364 阅读 · 0 评论 -
《流畅的Python第二版》读书笔记
《流畅的Python 第二版》读书笔记。原创 2021-04-18 13:12:25 · 3758 阅读 · 3 评论 -
《流畅的Python第二版》读书笔记——Python数据模型
本文是流畅的Python第二版的读书笔记系列开端,主要介绍了魔法方法的概念,以及引入了几个魔法方法。使用魔法方法,可以让你的Python对象像内建对象一样。原创 2021-04-18 13:06:19 · 3226 阅读 · 6 评论 -
《流畅的Python第二版》读书笔记——序列数组
主要介绍了常见的序列类型。原创 2021-04-18 13:01:09 · 774 阅读 · 0 评论 -
深度学习实例——Keras实现手写数字识别
引言在学习了深度学习的全连接网络后,我们用Keras实现手写数字识别。数据集采用的数据集是基本教程都会使用的MNIST数据集。在该数据集中每张图片由28x28个像素点构成,每个像素点用一个灰度值表示。可以将这28x28个像素展开为一个一维的行向量,作为输入,也就是有784x1的向量。如下是数字1的一个例子,我们的目的是做出一个模型,将这784个数值输入这个模型,然后它的输出是1。使用...原创 2020-01-04 12:28:01 · 15777 阅读 · 21 评论 -
NumPy简介
NumPy是高性能科学计算和数据分析的基础包。多维数组对象:ndarrayndarray中的所有元素必须是相同类型的,每个数组都有一个shape(表示各维度大小的元组)和一个dtype(说明数组数据类型的对象)创建ndarray通过array函数,它接受一切序列型的对象(包括其他numpy数组)>>> import numpy as np>>> data1 = [1,2,3,4,5]>>> ar原创 2017-12-20 20:21:29 · 627 阅读 · 0 评论 -
pandas简介
pandas是基于NumPy构建的,让以NumPy为中心的应用变得更加简单。引入约定from pandas import Series,DataFrameimport pandas as pdpandas的数据结构Series和DataFrameSeriesSeries是一种类似一维数组的对象,由一组数据和相关的索引组成。>>> obj = Series([4,7,-5,3])>>> obj0原创 2018-01-04 10:25:30 · 1217 阅读 · 0 评论 -
Python中的字符串
字符串表示,str和reprstr函数会把值转换为易于用户理解的字符串:>>>print str("Hello,world!")Hello,world!>>>print str(1000L)1000这里长整数1000L被转换为数字1000repr函数以合法的Python表达式的形式来表示:>>>print repr("Hello,world!")'Hello,world!'>>>print原创 2017-11-27 22:23:06 · 317 阅读 · 0 评论 -
Python字符串中常用的方法
字符串格式化使用字符串格式化操作符(%)来实现:>>> format = "Hello %s,nice to meet you!">>> print format % 'Jack'Hello Jack,nice to meet you!>>> format = "Hello %s,nice to meet %s!">>> print format % ('Rose','me')Hello原创 2017-11-29 11:13:17 · 1798 阅读 · 0 评论 -
Python中的字典与集合
字典类似Java中的Map,字典中的键可以是数字、字符串甚至是元组。创建和使用字典>>> people = {'jack':34,'rose':25,'jack':36}>>> people{'rose': 25, 'jack': 36}上面就是创建字典的方法,注意,字典中键是唯一的,我输入了两个’jack’,结果取的是后面输入的’jack’。dict函数也可以使用dict函数,通过其他映射(原创 2017-11-29 14:20:34 · 513 阅读 · 0 评论 -
Python中的文件和流
打开文件open(name[,mode[,buffering]]) 文件名是唯一的强制参数。 注意,如果文件不存在,会抛一个异常。文件模式open的第二个参数是文件模式,如下: 值 描述 r 读模式 w 写模式 a 追加模式 b 二进制模式(可添加到其他模式中) + 读/写模式(可添加到其他模式中)缓冲open的第三个参数控制着文件的缓冲。如果为0原创 2017-12-11 10:56:21 · 2581 阅读 · 0 评论 -
Python中的抽象
判断函数是否可调用python2.x版本通过 callable(x) 3.x版本使用表达式 hasattr(func,__call__)函数的参数关键字参数和默认值def hello_1(greeting,name): print greeting,namehello_1("hello","Saint")定义了一个hello函数,它有两个参数,这里参数的顺序很重要。但是如果参数很多的情原创 2017-12-05 20:07:53 · 803 阅读 · 0 评论 -
Python中的异常
异常类似Java中的Exception。Python用异常对象来表示异常情况。如何抛出异常Python中的throw语句-raise语句。>>> raise ExceptionTraceback (most recent call last): File "<stdin>", line 1, in <module>ExceptionPython中Exception是所有异常的基类自定义异常类原创 2017-12-05 20:49:22 · 396 阅读 · 0 评论 -
Python中的特殊方法、属性和迭代器
特殊方法有的名称前后都有两个下划线,如__future__,由这些名字组成的集合所包含的方法称为特殊方法。构造方法构造方法是一个特殊方法。 创建构造方法:class FooBar: def __init__(self): self.somevar = 42f = FooBar() print f.somevar #42也可以在构造方法中传入参数:class FooBar:原创 2017-12-06 15:10:26 · 643 阅读 · 0 评论 -
Python标准库
模块现在已经知道了通过import从外部模块获取函数:比如import math那么如何编写自己的模块呢模块是程序任何Python程序都可以作为模块导入假设在/root目录下编写hello.py,内容为:# hello.pyprint 'Hello'进入python解释器:>>> import sys>>> sys.path.append...原创 2019-07-17 18:20:56 · 381 阅读 · 0 评论 -
《流畅的Python》读书笔记——Python一等函数
在Python中,函数是一等对象:在运行时创建能赋值给变量或数据结构中的元素能作为参数传给函数能作为函数的返回结果把函数视作对象>>> def factorial(n): #通过控制台会话运行时创建一个函数... '''returns n!'''... return 1 if n < 2 else n * factorial(n-1)....原创 2019-07-30 16:28:29 · 674 阅读 · 0 评论 -
《流畅的Python》读书笔记——Python使用一等函数实现设计模式
本篇将使用函数对象重构策略模式,还将讨论一种更简单的方式,用于简化命令模式。重构策略模式首先看一下经典的策略模式是怎么实现的经典的策略模式# -*- coding: utf-8 -*from abc import ABC,abstractclassmethodfrom collections import namedtupleCustomer = namedtuple('Cus...原创 2019-07-30 18:07:39 · 398 阅读 · 0 评论 -
《流畅的Python》读书笔记——Python函数装饰器和闭包
引言函数装饰器(不是设计模式中的装饰器模式)用于在源码中“标记”函数,以某种方式增强函数的行为。这是一项强大的功能,但是若想掌握,必须理解闭包。除了在装饰器中有用处之外,闭包还是回调式异步编程和函数式编程风格的基础。首先看一下装饰器基础知识装饰器基础知识装饰器是可调用的对象,其参数是另一个函数(被装饰的函数)。 装饰器可能会处理被装饰的函数,然后把它返回,或者将其替换成另一个函数或...原创 2019-07-31 17:12:43 · 561 阅读 · 0 评论 -
《流畅的Python》读书笔记——Python对象引用、可变性和垃圾回收
变量是引用>>> a = [1, 2, 3]>>> b = a>>> a.append(4)>>> b[1, 2, 3, 4]a和b引用同一个列表。标识、相等性和别名每个变量都有标识、类型和值。对象一旦创建,它的标识绝不会变;你可以把标识理解为对象在内存中的地址。is 运算符比较两个对象的标识;id()函...原创 2019-08-01 16:36:04 · 361 阅读 · 0 评论 -
《流畅的Python》读书笔记——Python文本和字节序列
字符问题从Python3的str对象获取的元素时Unicode字符,相当于从Python2的unicode对象中获取的元素,而不是从Python2的str对象中获取的原始字节序列。把码位(字符的标识)转换成字节序列的过程是编码;把字节序列转换成码位的过程是解码:>>> s = 'café' >>> len(s)#4个Unicode字符4>>...原创 2019-07-28 18:32:06 · 775 阅读 · 0 评论 -
《流畅的Python》读书笔记——符合Python风格的对象
对象表示形式所谓对象表示形式,就是将对象转换为一种可读的形式。Python提供了两种方式:repr():以便于开发者理解的方式返回对象的字符串表示形式str():以便于用户理解的方式返回对象的字符串表示形式我们只要实现 __repr__ 和__str__ 特殊方法,就可以为repr() 和str() 提供支持。为了给对象提供其他的表示形式,还会用到另外两个特殊方法:__bytes...原创 2019-08-13 17:01:03 · 390 阅读 · 0 评论 -
《流畅的Python》读书笔记——Python序列的修改、散列和切片
引言信息检索领域经常使用 n 维向量,查询的文档和文本使用向量表示,一个单词一个维度。这叫向量空间模型。在这个模型中,一个关键的相关指标是余弦相关性(即查询向量与文档向量夹角的余弦)。夹角越小,余弦值越趋近于 1,文档与查询的相关性就越大。相关性越大也就是越相似,可用于分类、相似搜索以及推荐系统等。本篇文章在上一篇的基础上,使用组合模式实现我们的n维向量。Vector类v1:与Vec...原创 2019-08-17 16:11:57 · 263 阅读 · 0 评论 -
《流畅的Python》读书笔记——接口:从协议到抽象基类
Python文化中的接口和协议接口是实现特定角色的方法集合。协议是接口,但不是正式的,因此协议不能像正式接口那样施加限制。序列协议是 Python 最基础的协议之一。即便对象只实现了那个协议最基本的一部分,解释器也会负责任地处理。Python喜欢序列Python 数据模型的哲学是尽量支持基本协议。Sequence 抽象基类和 collections.abc 中相关抽象类的UML 类...原创 2019-08-23 11:08:09 · 431 阅读 · 0 评论 -
Python基本的数据结构-序列
序列Python最基本的数据结构是序列,序列的索引从0开始,最后一个元素的序号为-1,倒数第二个为-2。序列包括:列表(可变)、元组、字符串、Unicode字符串、buffer对象和xrange对象。列表和元组的主要区别是列表可以修改,而元组不能。序列可以包含其他的序列,如下:>>> jack = ['jack',42]>>> saint = ['saint',50]>>> db = [jack原创 2017-11-28 22:30:48 · 853 阅读 · 0 评论