python 基础
1.函数式编程
1.1 lambda 匿名函数
- 求列表中每个数字的平方
func = lambda x:x*x
func(4)
输出:16
1.2 map: 对一个序列的每个项依次执行函数
-将列表中每个元素都加2
a = [1,2,3,4]
b = map(lambda x:x+2,a)
print b
输出:[3,4,5,6]
1.3reduce: 对一个序列的每个项迭代调用函数
(lambda x,y : x*y,range(1,5))
: 24
1.4 filter 过滤器
filter(lambda x: x>5 and x<8,range(10))
(6,7)
2.zip用法
name=('Tom','Jack','Mary','Harry')
age=(2001,2002,2003,2004)
for a,n in zip(name,age):
print a,n
Tom 2001
Jack 2002
Mary 2003
Harry 2004
/************************************************/
name=('Tom','Jack','Mary')
age=(2001,2002,2003,2004)
for a,n in zip(name,age):
print a,n
Tom 2001
Jack 2002
Mary 2003
/*************************************/
name=('Tom','Jack','Mary')
age=(2001,2002,2003,2004)
a = zip(name,age)
a
[('Tom', 2001), ('Jack', 2002), ('Mary', 2003)]
u = zip(*a)
u
[('Tom', 'Jack', 'Mary'), (2001, 2002, 2003)]
3.读写文件
- 读文件
with open("C:\\test.txt",'r') as f:
str = f.read()
print str
Python还提供了一个codecs模块帮我们在读文件时自动转换编码,直接读出unicode:
import codecs
with codecs.open('C:\\test.txt', 'r', 'utf-8') as f:
str = f.read()
print str
2.使用字符串
字符串是不可变的
- find方法(在一个较长的字符串中查找子串,他返回子串所在位置的最左端索引,如果没有找到就返回-1
str = "Hello world"
str.find("lo")
3
- join
alist = [1,2,3,4]
alist = map(repr,alist)
s = "".join(alist)
print s
1234
- spilt(通过指定分隔符对字符串进行切片,默认为空格,如果参数num 有指定值,则仅分隔 num 个子字符串)返回list
print '1+2+3+4'.split('+')
print '1+2+3+4'.split('+')
- replace()
str = "hello world"`
s = str.replace('h','aaa')
print str,s
hello world aaaello world
- strip() (出去字符串两端字符)
print ' kkkk '.strip()
kkkk
print '***!* sas * ss !***'.strip('!*')
sas * ss
4.Numpy入门
- 创建数组
*range()返回的是列表,arange()返回的是ndarry*
import numpy as np
a = np.arange(4)
print a
[0 1 2 3]
print a.shape
(4L,)
#多维数组:
m = np.array([np.arange(2)],[np.arange(2)])
print m
[[0 1]
[0 1]]
np.zeros(3) 创建一个值全为0的数组
np.eye(N) 、np.identity(N) 创建N*N的单位矩阵
- 索引和切片
a = np.arange(9)
a[2:5]
array([2, 3, 4])
a[2:8:3]
array([2, 5])
a[:8:2]
array([0,2,4,6])
a[::-1]
array([8,7,6,5,4,3,2,1,0])
a[:-1]
[0 1 2 3 4 5 6 7]
m = np.arange(15).reshape(3,5)
print m
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]]
print m[1:,2:]
[[ 7 8 9]
[12 13 14]]
3.Numpy产生随机数(Numpy中的random模块可以生成连续分布函数的随机数也可以生成非连续的随机数)
生成正态分布的样本:
import numpy as np
import matplotlib.pyplot as plt
N = 1000
mu, sigma = 0, 0.1 #均值和标准差
normal_values = np.random.normal(mu, sigma, size = N)
plt.hist(normal_values, 30, normed=True)
plt.show()
plt.hist()函数参数含义点这里