zwPython.com研习社

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2938|回复: 0

FASTAI2列表扩展类L#7:扩展函数

[复制链接]

233

主题

240

帖子

5503

积分

超级版主

Rank: 8Rank: 8

积分
5503
发表于 2020-9-10 10:16:35 | 显示全部楼层 |阅读模式
FASTAI2列表扩展类L#7:扩展函数
(摘自《TOP极宽智能量化系列课件》)


TOP极宽智能量化系列课件《FASTAI2列表扩展类L#简介》当中,已经对列表扩展类L基本情况进行了介绍,下面我们看看列表扩展类L的常用操作。
首先,我们看看列表扩展类L的内部模块架构图:


列表扩展类L内部架构图

更多资料请参见:
极宽量化公众号,免费订阅,欢迎大家关注。

FASTAI智能量化论坛http://zwPython.com/forum.php?mod=forumdisplay&fid=65 【极宽QQ群】l  群号:1057170501 ,zwPython.com学习QQ群,面向py初学者和大众小白用户。l  群号:124134140,TOP极宽金融量化,三千人超大QQ群,面向专业金融实盘用户。l  群号:699266891,TFB极宽足球大数据QQ群 。l  群号:790548107,FASTAI智能量化。


由上图:列表扩展类L内部架构图,我们可以看出,列表扩展类L,常用的内置函数和方法有:
l  __getitem__,内部方法,=检索idx"Retrieve `idx` ,可以是idx索引列表、mask掩码或int整数项
l  __setitem__,内部方法,根据idx下标索引,设置数据项。
l  **_docs,注解说明。
l   
l  range,与“range”相同,返回“L” 列表扩展类。
l  split,数据切分,类似str.split,返回“L” 列表扩展类。
l  copy,列表复制,类似list.copy,返回“L” 列表扩展类。
l  sorted,="New",列表扩展类L按'key'键值排序。如果key是str字符串,则使用“attrgetter”属性函数。如果key为int整数,则使用“itemgetter”属性函数。
l  unique,独特数值,去掉L当中的重复数据项。
l  val2idx,从数值返回到idx索引的dict字典数据。
l  filter,过滤器,按`f`函数筛选,将参数'args'和'kwargs`传递给'f'函数。
l  argwhere,类似`filter`过滤器,但返回匹配项的索引”。
l  map,映射运算,将函数`f`应用于所有`items`项,使用参数`args`和`kwargs`。
l  map_dict,字典映射运算,类似`map`, 但是创建一个从'items'子项,到函数结果的dict字典。
l  starmap,star映射运算,使用迭代函数`itertools.starmap`。
l  itemgot,创建新的'L'对象,其中包含所有'items'子项的项目'idx'索引/下标。
l  attrgot,使用所有`items`子项的`k`键值创建新的`L'对象,如果`items子项`包含dict字典,则`L`将为每个dict字典,包含关键字`k`的相应值。
l  cycle,循环,类似itertools.cycle操作。
l  enumerate,枚举,类似enumerate操作。
l  zip,打包运算,创建新的'L'对象,属于`zip(*items)`操作。
l  zipwith,打包运算,用'self`和每个'*rest`属性,进行zip打包运算,创建新的L对象。
l  map_zip,映射打包,合并打包`zip`和`starmap`操作。
l  map_zipwith,合并打包`zipwith` and`starmap`操作。
l  concat,连接列表的所有元素。
l  shuffle,随机(洗牌)变换数据。
l  reduce,“装器`Wrapper,用于functools.reduce操作。
l  sum,求和,项目总数。
l  product,乘积运算,所有item子项进行乘积的总数。


根据列表扩展类L内部架构图,大家可以清楚了解列表扩展类L的内置函数和方法,可以分为以下三类:
l  以“__”下划线开头的函数,属于duke内部函数,很少直接使用。
l  继承于List列表类的常规序列操作函数。
l  L对象自行设计的扩展函数。

前面几节,大家已经学习了, 继承于List列表类的常规序列操作函数。
下面,我们分几节,对L对象的自行设计的扩展函数,逐一进行讲解。




案例#7,常用扩展函数
本节介绍列表扩展类L,常用的扩展函数:

l  shuffle,随机(洗牌)变换数据。
l  unique,去重函数,保留L对象当中独特的数据,unique函数去除其中重复的元素。
l  val2idx,把L对象反向转换为Dict字典格式,其中L对象的idx下标索引,是转换后dict字典数据的v数据值;L对象的item数据值,是转换后dict字典数据的k健值;会自动过滤重复的item数据值。
l  split,分割,根据sep分割符号(默认是空格),切分字符串,类似str.split函数,但返回值是L对象。
l  concat,连接多个L对象子项、数据,生成一个新的L对象,支持链式编程。
l  copy,复制,类似list.copy函数,但返回值是L对象。


案例文件名:fa2lsub007.py,建议大家采用统一的文件名保存课件程序代码,方便交流沟通。
我们先看看案例,以下是第1组程序代码:
print('\n----- #1')
a=L('btc',3,'eth',0,3,'ltc',2,'xrp')
print('a:',a)
#
b=a.shuffle()
print('b:',b)
生成L对象变量a,并用shuffle乱序函数处理,保存到变量b,便于后续函数工作,对应的输出信息:
----- #1
a: (#8) ['btc',3,'eth',0,3,'ltc',2,'xrp']
b: (#8) ['eth','xrp',3,2,3,'btc','ltc',0]
对应的内部变量示意图:


图  内部变量示意图


更多资料请参见:
极宽量化公众号,免费订阅,欢迎大家关注。

FASTAI智能量化论坛http://zwPython.com/forum.php?mod=forumdisplay&fid=65 【极宽QQ群】l  群号:1057170501 ,zwPython.com学习QQ群,面向py初学者和大众小白用户。l  群号:124134140,TOP极宽金融量化,三千人超大QQ群,面向专业金融实盘用户。l  群号:699266891,TFB极宽足球大数据QQ群 。l  群号:790548107,FASTAI智能量化。



【极宽QQ群】
群号:1057170501 ,zwPython.com学习QQ群,面向py初学者和大众小白用户。
群号:124134140,TOP极宽金融量化,三千人超大QQ群,面向专业金融实盘用户。
群号:699266891,TFB极宽足球大数据QQ群
群号:790548107,FASTAI智能量化QQ群。
【微信公众号】
请大家关注TOP极宽量化公众号,大量原创Python量化技术
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|zwPython.com研习社

GMT+8, 2023-4-1 13:40 , Processed in 0.035063 second(s), 3 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表