CS231n:Python Numpy教程,,Python基本数据
CS231n:Python Numpy教程,,Python基本数据
Python基本数据类型容器列表字典集合元组函数 类Numpy数组 访问数组数据类型数组计算广播SciPy图像操作MATLAB文件点之间的距离Matplotlib绘制图形绘制多个图形图像Python
python实现的经典的quicksort算法:
1 def quicksort(arr): 2 if len(arr)<=1: 3 return arr 4 pivot = arr[len(arr)/2] 5 left = [x for x in arr if x < pivot] 6 middle = [x for x in arr if x == pivot] 7 right = [x for x in arr if x > pivot] 8 return quicksort(left) + middle + quicksort(right) 9 10 print quicksort([3,6,8,10,1,2,1])11 #prints "[1,1,2,3,6,8,10]"
数字:整型和浮点型的使用与其他语言类似。
x = 3print(type(x))#printd "<type ‘int‘>"print(x) #prints "3"print(x + 1) #Addition;prints "4"print(x - 1) #Subtraction; prints "2"print(x * 2) #Multiplication; prints "6"print(x ** 2) #Expoentiaton; prints "9"x += 1print(x)# prints "4"x *= 2print(x) #prints "8"y = 2.5print(type(y))# prints "<type ‘float‘>"print(y,y + 1,y * 2,y ** 2) #prints "2.5 3.5 5.0 6.25"
注意!!!! Python 中没有x++和x--的操作符。
布尔型:Python实现了所有的布尔逻辑。
t = Truef = Falseprint(type(t)) #prints "<type‘bool‘>"print(t and f ) #logical AND; prints "False"print(t or f )#Logical OR; prints "True"print( not t )#Logical NOT; prints "False"print(t != f) #Logical XOR;prints "True"
字符串:
hello = ‘hello‘ #String literals can use single quotesworld = ‘world‘ # pr double quotes; it does not matter,print(hello) #prints "hello"print(len(hello)) #String length; prints "5"hw = hello + ‘ ‘+ world #String concatentionprint(hw)# prints "hello world "hw12 = ‘%s %s %d‘ % (hello,world,12) #sprintf style string formattingprint(hw12)#prints "hello world 12"
字符串对象的方法:
s = "hello"print(s.capitalize()) #Capitalize a string prints "hello"print(s.upper()) #Convert a stirng to upercase; prints "HELLO"print(s.rjust(7))#Righr-justify a string,padding with space; prints " hello"print(s.center(7))#Center a string,padding with space;prints " hello "print(s.replace(‘l‘,‘(ell)‘)) #Replace all instance of one substring with another; #prints "he(ell)(ell)o"print(‘ world‘.strip())#Strip leading and trailing whitespace; prints "world"
容器 Containers
容器类型:列表(lists) 字典(dictionaries) 集合(sets)和元组(tuples)
列表Lists
列表就是python 中的数组,但是列表长度可变,且能包含不同类型元素
xs = [3,1,2] #Create a listprint( xs ,xs[2]) #prints "[3,1,2] 2"print(xs[-1]) #Negative indices count from the end of the list; prints "2"xs[2] = ‘foo‘ #Lists can contain elements of different typesprint(xs) #Prints "[3,1,‘foo‘]"xs.append(‘bar‘)#Add a new element to the end of the listprint(xs) #printsx = xs.pop()#Remove and return the last element of the listprint(x,xs)#Prints "bar [3,1,‘foo‘]"
切片Slicing : 为了一次性地获取列表中的元素,python 提供了一种简洁的语法,这就是切片。
nums = list(range(5)) #range is a built-in function that creates a list of integersprint(nums)#prints "[0,1,2,3,4]"print(nums[2:4])#Get a slice from index 2 to 4 (exclusive); prints ‘[2,3]"print(nums[2:])#Get a slice from index 2 to the end; prints "[2,3,4]"print(nums[:2])#Get a slice from the start to index 2 (exclusive); prints "[0,1]"print(nums[:])#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,3]"nums[2:4] = [8,9] # Assign a new sublist to a sliceprint(nums)#prints "[0,1,8,9,4]"
在Numoy数组的内容中,再次看到切片语法。
循环LOOPS:
animals =[‘cat‘,‘dog‘,‘monkey‘]for animal in animals: print(animal)#prints "cat", "dog","monkey",each on its own line.
如果想要在循环体内访问每个元素的指针,可以使用内置的enumerate函数
animals = [‘cat ‘,‘dog‘,‘monkey‘]for idx,animal in enumerate(animals): print(‘#%d: %s‘%(idx + 1,animal))#prints "#1: cat","#2: dog","#3: monkey",each on its own line
列表推导List comprehensions :在编程的时候,我们常常想要将一个数据类型转换为另一种。
将列表中的每个元素变成它的平方。
nums = [0,1,2,3,4]squares = []for x in nums: squares.append(x ** 2)print(squares) #Prints [0,1,4,9,16]
使用列表推导:
nums = [0,1,2,3,4]squares = [x ** 2 for x in nums]print(squares) # prints [0,1,4,9,16]
列表推导还可以包含条件:
nums = [0,1,2,3,4]even_squares = [x ** 2 for x in nums if x % 2 == 0]print(even_squares) # prints "[0,4,16]"
字典Dicionaries
字典用来存储(键,值)对,
d = {‘cat‘:‘cute‘,‘dog‘:‘furry‘}#Create a new dictionary with come dataprint(d[‘cat‘]) #Get an entry from a dictionary ; prints "cute"print(‘cat‘ in d) #Check if a dictionary has a given key; prints "Ture"d[‘fish‘] = ‘wet‘ #Set an entry in a dictionaryprint(d[‘fish‘]) # prints "wet"# print d[‘monkey‘] #KeyError: ‘monkey ‘ not a key of dprint(d.get(‘monkey‘,‘N/A‘)) # Get an element with a default; prints "N/A"print(d.get(‘fish‘,‘N/A‘))#Get an element with a default ; prints "wet"del d[‘fish‘] #Remove an element from a dictionaryprint(d.get(‘fish‘,‘N/A‘)) # "fish" is no longer a key ;prints "N/A"
循环LOOPS:在字典中,用键来迭代。
d = {‘person‘:2,‘cat‘:4,‘spider‘:8}for animal in d: legs = d[animal] print(‘A %s has %d legs‘ % (animal,legs))#Prints "A person has 2 legs", " A spider has 8 legs","A cat has 4 legs"
访问键和对应的值,使用items方法:
d = {‘person‘:2,‘cat‘:4,‘spider‘:8}for animal,legs in d.items(): print(‘A %s has %d legs‘ % (animal,legs))#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_square = {x:x**2 for x in nums if x % 2 == 0}print(even_num_square) # prints "{0:0,2:4,4:16}"
CS231n:Python Numpy教程
评论关闭