当前位置:文档之家› 互联网金融中的交易反欺诈模型-课程1

互联网金融中的交易反欺诈模型-课程1

print(spend.iloc[3].apply(lambda x: x+1)) #此时不会改变原元素
map函数:让函数作用在Series上 applymap函数:让函数作用在dataframe的每一个元素上 print(spend.applymap(lambda x: x+1))
DATAGURU专业数据分析社区
if-else 语句 if outstanding>0: print(“the account need to pay before end of month”) else: print(“the account is inactive”)
DATAGURU专业数据分析社区
Python基本语法
Python3基本语句
d = (c, 1, b[1])
字典,Python中的映射数据类型(哈希表),由键值对(key-value)构成 acct_amt = {‘a0001’:123.03, ‘b0002’:-45.21}
DATAGURU专业数据分析社区
Python基本语法
Python3基本语句 Python使用缩进而非大括号表达代码逻辑,可读性高、表达清晰
例如,求指定两个数的较大的一个,除了用def语句生成函数外,可以用一行lambda语句: max_of_two = lambda x,y: int(x>y)*x+int(x<y)*y >>> print(max_of_two(12,45)) 45
DATAGURU专业数据分析社区
Python基本语法
for 循环:接受可迭代对象(例如列表)作为参数,每次迭代其中一个元素 for person in [‘Zhang Yi’,’Li Er ’,’Wang San’]: print person
列表解析:对列表中的每个元素进行同样的操作,可不用for循环而用列表解析 例如,对amount = [122.31, 54.32, 556.91]中的每个元素除以30时,可以用列表解析: avg_daily_spend = [x/30 for x in amount]
或者找出每月花费超过100元的数额: large_monthly_spend = [x for x in amount if x > 100]
DATAGURU专业数据分析社区
Python基本语法
自定义函数 关键词:def
例如,自定义函数,找出消费额超出日均消费额的天数 def LargeSpendDate(spend_amount_list): avg = sum(spend_amount_list)/len(spend_amount_list) large_spend_date = [d for d in range(len(spend_amount_list)) if spend_amount_list[d]> avg] return len(large_spend_date)
代理 (Calendar Server, 它 驱动了 Apple iCal)
搜索系统 (ITA, Ultraseek, 还有 Google) Internet 基础设施 (DNS) (BIND 10)
网站(知乎)
DATAGURU专业数据分析社区
Python语言的基本概念
1989
创始人Guido van Rossum开始创建 1991
def myfunc([arguments]):
operations return result 函数的入参可以是 • 默认参数
• 关键字参数
DATAGURU专业数据分析社区
Python基本语法
函数式编程:匿名函数 简单的函数并不需要显示定义,以此减少代码量,增加程序的阅读性和美感
lambda 与匿名函数
数据分析建模中常用的模块
Numpy模块 Python的一种开源的数组计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列
表(nested list structure)结构要高效的多
创建1维数组:data = np.array([1,3,4,8]) 创建二维数组:data = np.array([[1,2,3],[4,5,6]]) 创建特殊数组:data = np.zeros((2,2)) #创建2*2全为0的2维数组 data = np.ones((2,3,3,)) #创建全为1的三维数组 data = np.eye(4) #创建4*4的对角数组,对角元素为1,其它都为0
注:就还有一个apply函数:当一个函数的参数存在于一个元组或者一个字典中时,用来间接的调用这个函数,元组或者字典中的参数按照顺序传递。apply 函数在Python2 里用地较多,在Python3里已经被废除。后续在dataframe的操作里会介绍
DATAGURU专业数据分析社区
Python基本语法
Python简史
2000 Python2.0诞生 2008
第一个Python编译器诞生
Python3.0诞生,且初期完全不兼容早期版本
DATAGURU专业数据分析社区
Python基本语法
Python3基本数据结构 单一型变量,无需事先声明变量类型
数值:a=1, a=1.0, a=1+2j
字符串(区分大小写):b=‘python’。字符串是字符的集合,可以被引用:b[2] 列表list,可存储任意个数、任意类型的对象,索引从0开始 c = [1, ‘abc’, b] 元组tuple,跟列表相似,但是一旦建立就不能被修改
DATAGURU专业数据分析社区
数据分析建模中常用的模块
Numpy模块(续) 数学运算:
x, y = np.arange(1,5).reshape(2,2), np.arange(5,9).reshape(2,2)
导入外部模块 基础的Python环境可能没有所需的函数、属性、功能,需要从外部模块中导入。
例如,在Python3中,reduce函数不属于全局函数,需要从库”functools”中导入。
两种操作: ① 导入1个或者多个整个模块:import module1[, module2,…] ② 从模块中导入指定的1个或者多个属性:from module import name1[,nam2,…] 可以对导入的模块或者属性重命名:
优雅• 丰富的基础代码库和第三方库
易入门
• 近乎自然语言(英语) • 支持面向对象和面向过程,兼有函数式编程的功能
DATAGURU专业数据分析社区
Python语言的基本概念
基于Python的大型项目
电信基础设施 (Twilio) 支付系统 (PayPal, Balanced Payments) 神经科学和心理学 (许多许多例子) 数值分析和工程 (numpy, numba, 以及 更多其它) 动画(LucasArts, Disney, Dreamworks) 游戏后台 (Eve Online, Second Life, Battlefield, 以及 其它很多) Email 基础设施 (Mailman, Mailgun) 媒体存储和处理 (YouTube, Instagram, Dropbox) 操作和系统管理 (Rackspace, OpenStack) 自然语言处理(NLTK) 机器学习和计算机版本 (scikit-learn, Orange, SimpleCV) 安全性和渗透性测试 (很多很多,以及eBay / PayPal等) 大数据 (Disco, Hadoop support)
DATAGURU专业数据分析社区
数据分析建模中常用的模块
Pandas模块(续) apply函数:让函数作用在dataframe某一维的向量上时,可以使用apply来完成
#将函数作用在列元素上
print(spend[‘a’].apply(lambda x: x+1)) #此时不会改变原元素
#将函数作用在行元素上
from module import longNameAttri as shortNameAttri
DATAGURU专业数据分析社区
数据分析建模中常用的模块
Pandas模块 2个重要的数据结构
Series:是一个一维数组对象,并且可以带索引 import pandas as pd #从列表中创建Series delq = pd.Series([1,0,2,3,0]) #从字典中创建Series delq = pd.Series({'a':1,'b':0,'c':2,'d':3,'e':0}) #查找第2个元素 print(delq[2]) #查找不为0的元素 print(delq[delq!=0]) pandas:一个表格型的数据结构。它提供有序的列和不同类型 的列值。 spend = pd.read_csv('spend.csv',header = 0) #从字典中创建dataframe spend = pd.DataFrame({'a':list(range(10)),'b':list(range(20,10,-1))}) #选取第3条记录 print(spend.iloc[3]) #选取a列超过5,b列不超过15的记录 print(spend[(spend.a>5)&(spend.b<=15)])
函数式编程:内建函数
map函数:对一个及多个序列执行同一个操作, 返回一个列表 >>> map(lambda x: x+1,[1,2,3,4]) [2, 3, 4, 5] >>> map(lambda x,y: x+y,[1,2,3,4],(10,20,30,40)) [11, 22, 33, 44] reduce函数:某二元函数作用在序列上,且进行 “卷积”操作 例如:计算每日消费的总额 >>>daily_spend = [110.32, 0, 445.32, 0, 88.83,0] >>>print(reduce(lambda x,y:x+y, daily_spend)) 644.47 filter函数:对给定的序列依照某种条件作过滤 例如,过滤掉每日消费中,消费为0的记录 >>>daily_spend = [110.32, 0, 445.32, 0, 88.83,0] >>>has_spend = filter(lambda x: x!=0,daily_spend) >>>print(list(has_spend)) [110.32, 445.32, 88.83] zip函数:将多个序列相同位置上的元素,组合成元组后 放入列表中 >>>days, spend = [10,25,30], [12.20, 20.43, 44.32] >>>consumptions = zip(days, spend) >>>print(list(consumptions )) [(10, 12.2), (25, 20.43), (30, 44.32)]
相关主题