文件名称:
CS231n课程笔记翻译 全 带书签 PDF
开发工具:
文件大小: 14mb
下载次数: 0
上传时间: 2019-03-17
详细说明:斯坦福李飞飞-深度学习计算机视觉课程笔记的中文版,知乎上杜克版本的PDF版本,整理为全一册pdf,带书签print quicksort([3,6,8,10,1,2,1])
prints"[1,1,2,3,6,8,10
Python版本
Python有两个支持的版本,分别是27和34。这有点让人迷惑,3.0向语言中引入了很多不向后
兼容的变化,27下的代码有时候在3.4下是行不通的。在这个课程中,我们使用的是27版本。
如何查看版本呢?使用 python- version命令。
基本数据类型
和大多数编程语言一样,βythωn拥有一系列的基本数据类型,比如整型、浮点型、布尔型和字
符串等。这些类型的使用方式和在其他语言中的使用方式是类似的。
数字:整型和浮点型的使用与其他语言类似。
print type(x)# Prints "
print x
f prints 3
print x 1
Addition: prints
print x-1 Subtraction: prints
print x *2 * Multiplication: prints
print x * 2 Exponentiation: prints
print x f Prints"4
print x并 Prints"8
2.5
print type(y)# Prints
print y,y+1,y*2,Y**2 prints"2.53.55.06.25
需要注意的是, Python中没有x++和x-的操作符。
Python也有内置的长整型和复杂数字类型,具体细节可以查看文档。
布尔型: Python实现了所有的布尔逻辑,但用的是英语,而不是我们习惯的操作符(比如&&和‖
等)
t true
False
print type(t)* Prints
print t and f Logical AND: prints False
print t or ff Logical OR, prints"frue
print not t
Logical NOT, prints"False
print t I= ff Logical XOR, prints True
字符串: Pythonη对字符串的支持非常棒。
hello = hello
String literals can use single quotes
world ="world" f or double quotes, it does not matter
print hello
f Prints hello
print len (hello) f String length, prints
hw hello + world f string concatenation
print hw f prints hello world
hw12 ='s s d(hello, world, 12)* sprintf style string formatting
print hw12 prints hello world 12
字符串对象有一系列有用的方法,比如
hello
print s capitalize() Capitalize a string, prints "Hello
print s upper()
Convert a string to uppercase, prints"HELLO
print srjust(7)
R⊥qht-元 ustify a str⊥ng; padding with spaces; prints"
print s center(7
Center a string, padding with spaces, prints hello
print s replace(l',(ell)')# Replace all instances of one substring with a
prints he(el1)(ell)o
print world.strip( strip leading and trailing whitespace; prints"wor
如果想详细查看字符串方法,请看文档。
容器 Containers
译者注:有知友建议 container翻译为复合数据类型,供读者参考。
Python有以下几种容器类型:列表(ists)、字典( dictionaries)、集合(sets)和元组
tuples
列表 Lists
列表就是 Python中的数组,但是列表长度可变,且能包含不同类型元素。
xs =[3, 1, 21 Create a list
print xs, xs[2] Prints[3, 1, 21 2
print xs[-1]
Negative indices count from the end of the list, prints2
xs[2]= foo
f Lists can contain elements of different types
print xs
Prints"[3,1,'foo’
xs append('bar )# Add a new element to the end of the list
print xs
f prints
x=xs·pOp()
f Remove and return the last element of the list
print x, xS
Pr⊥nts"bar「3,1,'foo'7
列表的细节,同样可以查阅文档。
切片 Slicing:为了一次性地获取列表中的元素, Python提供了一种简洁的语法,这就是切片。
nums range(5
f range is a built-in function that creates a list of integ
print nums
Px1nts"0,1,2,3,4
print nums[2:4] f Get a slice from index 2 to 4 (exclusive), prints [2,31
print nums[2: 1
f Get a slice from index 2 to the end, prints[2, 3, 41
print nums[: 2]
f Get a slice from the start to index 2(exclusive); prints
print nums[: 1
i Get a slice of the whole list, prints [0, 1, 2, 3, 4]
print nums[: -1] Slice indices can be negative, prints [0, 1, 2, 31
nums[2:4]=[8, 9]# Assign a new sublist to a slice
print nums
# Prints"[0,1,8,8,47
在 Numpy数组的内容中,我们会再次看到切片语法。
循环 Loops:我们可以这样遍历列表中的每一个元素
animals =[cat,dog,monkey 1
for animal in animals
print animal
f Prints"cat
dog
,monkey", each on its own line.
如果想要在循环体內访问每个元素的指针,可以使用内置的 enumerate函数
animals =[cat,dog,monkey 1
for idx, animal in enumerate(animals)
print'#8d:号s'号(idx+1; anima1)
并 Prints"1:Cat
#2: dog",#3: monkey, each on its own line
列表推导 List comprehensions:在编程的时候,我们常常想要将一种数据类型转换为另
种。下面是一个简单例子,将列表中的每个元素变成它的平方。
nuns=[0,1,2,3,4]
squares =[
for x in nums
squares. append(x * 2)
print squares f Prints or 1 4, 9, 167
使用列表推导,你就可以让代码简化很多:
nums=[0,1,2,3,4]
squares =[x * 2 for x in nums
print squares f Prints [0, 1, 4, 9, 167
列表推导还可以包含条件
nuns=[0,1,2,3,4
even squares =[x **2 for in nums if x2==01
print even squares Prints[0, 4, 167
字典 Dictionaries
宇典用来储存(键,值)对,这和Java中的Map差不多。你可以这样使用它:
d=['cat':'cute','dog:' furry) f Create a new dictionary with some data
print d[ cat]
Get an entry from a dictionary, prints"cute
print cat in d
Check if a dictionary has a given key, prints"rue
d[ fish]=wet# Set an entry in a dictionary
print d[ fish]
f Prints wet
f print d[ 'monkey1# KeyError: monkey not a key of d
print d get('monkey',N/A)# Get an element with a default: printsN/A
print d get(' fish
N/A
Get an element with a default: prints"wet
del d[ fish]
Remove an element from a dictionary
print d get('fish,N/A)#"fish" is no longer a key, prints"N/A
想要知道字典的其他特性,请查阅文档。
循环 Loops:在字典中,用键来迭代更加容易。
d=i person:2,cat: 4, spider: 8)
for animal in d:
legs d[animal]
print a % s has d legs%(animal, legs
f Prints "A person has 2 legs","A spider has 8 legs","A cat has 4 legs
如果你想要访问键和对应的值,那就使用 iteritems方法
d=i person:2,cat: 4, spider:8)
for animal, legs in diteritems():
print A s has d legs(animal, legs
f Prints A person has 2 legs","A spider has 8 legs",A cat has 4 legs
字典推导 Dictionary comprehensions:和列表推导类似,但是允许你方便地构建字典。
nums=[0,1,2;3,4]
even num to square =ix: x** 2 for x in nums if x%2==0]
print even num to square f Prints 10: 0, 2: 4, 4:16)
集合Sets
集合是独立不同个体的无序集合。示例如下
animals =i cat,dog)
print 'cat in animals f Check if an element is in a set: prints"True
print fish' in animals f prints False
animals. add( fish)
f Add an element to a set
print fish in animals Prints"True
print len(animals)
Number of elements in a set, prints
animals. add( cat)
Adding an element that is already in the set does n
print len(animals)
f Prints
animals. remove('cat)
Remove an element from a set
print len(animals
并 prints"2
和前面一样,要知道更详细的,查看文档。
循环 Loops:在集合中循环的语法和在列表中一样,但是集合是无序的,所以你在访问集合的
元素的时候,不能做关于顺序的假设。
animals =i cat,'dog, fish
for idx, animal in enumerate(animals
print'#号d:s号(idx+1, anana1)
f Prints#1: fish"#2: dog,#3: cat
集合推导 Set comprehensions:和字典推导一样,可以很方便地构建集合
from math import sart
mums fint(sart(x))for x in range(30)1
print nums #Prints" set([0, 1, 2, 3, 4, 51)
元组 Tuples
元组是一个值的有序列表(不可改变)。从很多方面来说,元组和列表都很相似。和列表最重
要的不同在于,元组可以在字典中用作键,还可以作为集合的元素,而列表不行。例子如下
d =[(x, x+ 1): x for x in range (10)1# Create a dictionary with tuple keys
print d
(5,6)
f Create a tuple
print type(t)
Prints"
print a[t]
f Prints
print d[(l,2)]#Prints
文档有更多元组的信息。
函数 Functions
Python函数使用de来定义函数
de王sign(x)
1f x>0:
return positive
elif x<0:
return negative
else
return zero
for x in[-1,0;1]:
print sign(x
Prints "negative
positive
我们常常使用可选参数来定义函数
def hello(name, loud=False):
if loud:
print HElLO, s% name. upper(
else
print Hello, %s!% name
hello('Bob)# Prints"Hello, Bob
hello('Fred, loud=True) f Prints"HELLO, FRED!
函数还有很多内容,可以查看文档。
类 Classes
Python对于类的定义是简单直接的
class Greeter(object):
f Constructor
def init(self, name
self. name name Create an instance variable
工 nstance method
def greet(self, loud=False):
if loud.
print HELLO, %s!% self. name. upper()
else
print Hello, %s self. name
g Greeter( ' Fred)# Construct an instance of the Greeter class
g. greet()
f Call an instance method: prints"Hello, Fred
g greet(loud=True) Call an instance method, prints "HELLO, FRED!
更多类的信息请查阅文档。
Numpy
Numpy是 Python中用于科学计算的核心库。它提供了高性能的多维数组对象,以及相关工具。
数组 Arrays
一^ numpy数组是一个由不同数值组成的网格。网格中的数据都是同一种数据类型,可以通过
非负整型数的元组来访问。维度的数量被称为数组的阶,数组的大小是一个由整型数构成的元
组,可以描述数组不同维度上的大小。
我们可以从列表创建数组,然后利用方括号访问其中的元素
import numpy as np
a = np array([l, 2, 31) Create a rank 1 array
print type (a
Prints "
print a shape
米 Prints"(3;)
print a[o], a[l], a[2] f# Prints 1 2 3
[0]=5
f Change an element of the array
print a
并 prints"[5,2,3J
b = np array([[1,2,3,[4,5,6]) Create a rank 2 array
print b
#显示一下矩阵b
print b。 shape
Px⊥nts"(2,3)
print b[0,0],b[0,1],b[1,0] prints"124
Numpy还提供了很多其他创建数组的方法
import numpy as np
a np zeros(2, 2))# Create an array of all zeros
print a
prints"[[0.0。
b np ones((1, 2)) f Create an array of all ones
print b
Prints"[
np. full((2, 2),7)# Create a constant array
print c
并 Prints"[7.7
d np eye(2)
f Create a 2x2 identity matrix
print d
Prints"[[1.0。
e np random, random((2,2))f Create an array filled with random values
print e
∥M⊥ ight print"[0.919401670.081439411
0.687441340.872366871
其他数组相关方法,请查看文档。
访问数组
Numpy提供了多种访问数组的方法。
切片:和 Python列表类似, numpy数组可以使用切片语法。因为数组可以是多维的,所以你必
须为每个维度指定好切片。
import numpy as np
f Create the following rank 2 array with shape (3, 4)
([12347
56787
91011121
a=np. array([[1,2,3;4],[5,6,7,8],[9,10,11,12]])
f Use slicing to pull out the subarray consisting of the first 2 rows
f and columns I and 2, b is the following array of shape (2,2)
([23
[671
a[:2;1:3]
f A slice of an array is a view into the same data, so modifying it
f wi11 modify the original array
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.