用python数据分析和机器学习

本文介绍了Python的基础知识,包括函数式编程的概念如lambda、map、reduce和filter等,并展示了如何使用这些工具处理数据。此外,文章还详细讲解了Python中zip函数的应用场景及文件读写的实现方式。最后,深入探讨了Numpy这一科学计算库的基本用法,包括数组的创建、索引和随机数生成等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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入门

  1. 创建数组
*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的单位矩阵
  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 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()函数参数含义点这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值