用python数据分析和机器学习

来源:互联网 发布:用友软件 编辑:程序博客网 时间:2024/04/29 13:04

python 基础


1.函数式编程
1.1 lambda 匿名函数

  • 求列表中每个数字的平方
func = lambda x:x*xfunc(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,nTom 2001Jack 2002Mary 2003Harry 2004/************************************************/name=('Tom','Jack','Mary')age=(2001,2002,2003,2004)for a,n in zip(name,age):    print a,nTom 2001Jack 2002Mary 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 codecswith 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 s1234
  • 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()kkkkprint '***!* sas * ss !***'.strip('!*') sas * ss 

4.Numpy入门

  1. 创建数组
*range()返回的是列表,arange()返回的是ndarry*import numpy as npa = 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的单位矩阵
  1. 索引和切片
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 npimport matplotlib.pyplot as pltN = 1000mu, sigma = 0, 0.1  #均值和标准差normal_values = np.random.normal(mu, sigma, size = N)plt.hist(normal_values, 30, normed=True)plt.show()

plt.hist()函数参数含义点这里

0 0
原创粉丝点击