遍历

python机器学习案例系列教程――LightGBM算法

匿名 (未验证) 提交于 2019-12-02 22:11:45
pip install lightgbm 1 1 gitup网址: https://github.com/Microsoft/LightGBM http://lightgbm.apachecn.org/cn/latest/index.html xgboost的出现,让数据民工们告别了传统的机器学习算法们:RF、GBM、SVM、LASSO……..。现在微软推出了一个新的boosting框架,想要挑战xgboost的江湖地位。 顾名思义,lightGBM包含两个关键点:light即轻量级,GBM 梯度提升机。 LightGBM 是一个梯度 boosting 框架,使用基于学习算法的决策树。它可以说是分布式的,高效的,有以下优势: 更快的训练效率 低内存使用 更高的准确率 支持并行化学习 可处理大规模数据 如果你觉得这篇文章看起来稍微还有些吃力,或者想要系统地学习人工智能,那么推荐你去看床长人工智能教程。非常棒的大神之作,教程不仅通俗易懂,而且很风趣幽默。点击 这里 可以查看教程。 其缺点,或者说不足之处: 每轮迭代时,都需要遍历整个训练数据多次。如果把整个训练数据装进内存则会限制训练数据的大小;如果不装进内存,反复地读写训练数据又会消耗非常大的时间。 预排序方法(pre-sorted):首先,空间消耗大。这样的算法需要保存数据的特征值,还保存了特征排序的结果(例如排序后的索引

深入理解python迭代、可迭代对象、迭代器及生成器

匿名 (未验证) 提交于 2019-12-02 22:11:45
迭代 通常意义上的迭代是指:重复执行一系列运算,从前面的量依次推出后面的量的过程,每一次迭代的结果,会作为下一次迭代的初始值。 在c、c++、java等编程语言中的for循环语句,就是一个迭代过程,例如: for(int i=0;i<100;i++) {   cout << i << endl; } 这种for循环语句比较符合迭代的含义,for语句中给定了一个初始输入 i=0 ,然后开始执行一个重复推导变量 i 是否小于 100 ,如果小于就对 i 加1并执行循环体中代码的过程,且每次执行后的结果将作为下一次推导的输入值,这个过程就是迭代。 python中,也使用了 for 关键字来实现类似过程,具体形式为 for ... in ... ,当然迭代过程也可以通过while循环语句等来实现,但不在本文讨论范畴,这里不做说明。在python中通常使用 for ... in ... 的形式来遍历一个list或tuple等对象,这种遍历过程,通常称为迭代(Iteration)。例如: 上图中,通过for语句来遍历列表L,实现语句块的重复执行过程。这里之所以每次迭代时都让num的值加3,是为了说明语句块中对num进行修改后的值并不会带入到下一次迭代过程,这里应注意与C、C++、java等语言的for循环语句的区别。至于为什么是这样,可以查阅python语法中for语句的执行原理,这里不再详述

python遍历词典

匿名 (未验证) 提交于 2019-12-02 22:11:45
版权声明:本文为博主原创文章,转载请标明出处,蟹蟹 https://blog.csdn.net/fly_wt/article/details/85520219 2019年第一篇博客,祝大家新年快乐!希望自己在年前能把python学一遍,这样看其他代码才不会无所适从,加油! 1.遍历所有键值对 要编写用于遍历字典的for 循环,可声明两个变量,用于存储键―值对中的键和值。对于这两个变量,可使用任何名称 user_0 = { 'username' : 'efermi' , 'first' : 'enrico' , 'last' : 'fermi' , } for key , value in user_0 . items ( ) : print ( "\nKey: " + key ) print ( "Value: " + value ) 输出: Key: username Value: efermi Key: first Value: enrico Key: last Value: fermi 2.遍历词典中的所有的键 使用keys()方法,它返回一个列表,其中包含字典中所有的键 favorite_languages = { 'jen' : 'python' , 'sarah' : 'c' , 'edward' : 'ruby' , 'phil' : 'python' , } for

Leetcode 144. 二叉树的前序遍历 python

匿名 (未验证) 提交于 2019-12-02 22:11:45
给定一个二叉树,返回它的 前序 遍历。 示例: 输入: [1,null,2,3] 1 2 / 3 输出: [1,2,3] # Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: def preorderTraversal(self, root): """ :type root: TreeNode :rtype: List[int] """ result=[] if(root==None): return result stack=list() stack.append(root) while(len(stack)!=0): top=stack.pop() if(top.right!=None): stack.append(top.right) if(top.left!=None): stack.append(top.left) result.append(top.val) return result 文章来源: Leetcode 144. 二叉树的前序遍历 python

PHP基础4--函数-数组

匿名 (未验证) 提交于 2019-12-02 22:11:45
主要 函数 数组 常用系统函数 函数   基础   1)定义 1 function 函数名(【$形参1】,【$形参2】,.....) { 2 //函数体 3 } 点击查看函数定义形式   2) 调用   3)调用过程 step 1: 将函数调用的实参数据,传递给函数的形参 step 2: 程序进入到函数内部 step 3: 在函数内部,按正常的流程顺序执行里面的代码 step 4: 如果函数结束或遇到return,返回到原来调用函数的位置,继续执行后续的代码 函数调用过程分析   函数的参数   1)形参的默认值   2)形参传值     实参变量传值给形参变量。两种传值方式       值传递: 默认。一般参数传值都是值传递          3) 参数的数量     一般实参数量与形参数量一致。当形参有默认值,可以省略有默认值的实参。但只能从右边往左省略       依赖于3个系统函数:                   func_get_args($i) :          func_num_args():          函数的返回值   可以返回数据,也可以不返回   函数中遇到return语句,自动终止函数的执行,返回到调用函数的位置继续执行后续代码   函数的形式 1 <?php 2 3 //可变函数 4 //声明了三个函数 5 function jpg() {

C#集合

匿名 (未验证) 提交于 2019-12-02 22:10:10
一、 集合概述   没有掌握集合的知识之前,我们通常都是用数组来存储元素。数组有一个很明显的特点就是,长度是固定的。假设,用数组存储一组员工信息,显然公司的员工数量是有流动性的,如果来了新员工,那么以现有的知识来思考,这个数组只能重新定义。能否建立一个动态的 “数组”,使我们可以对其进行动态的操作呢?下面就引入集合,来解决这个问题。 二、 ArrayList ArrayList 属于非泛型集合,现在大多数情况用的很少了。文章里会首先介绍非泛型集合,是因为引出泛型集合,就像通过数组引出集合的概念一样。 ArrayList 可能会介绍的详细一点,这都是为了后面的内容做铺垫。 1.简介 ArrayList 非常类似于数组,可以填补数组的不足,进行元素的动态维护。数组的长度是固定的,而 ArrayList 的容量可以根据需要自动扩充,它的索引会根据程序的扩展而重新分配和调整。 ArrayList 是可以动态维护的,因此在定义的时候可以指定容量,也可以不指定容量。 如图: 2.给ArrayList添加数据 重点: 如果Add()添加的元素是值类型,这些元素都会装箱处理转换为Object引用类型。因此ArrayList中所有的元素都是引用类型。 b.通过集合初始化器构造集合 3.存取ArrayList中的单个元素 4.删除ArrayList中的元素 4.1.RemoveAt(

C# IEnumerable接口

匿名 (未验证) 提交于 2019-12-02 22:06:11
问: 集合很好用,而且非常简单,但是我不明白 为什么数组、ArrayList 和 Hasttable 这些集合都能用foreach直接遍历呢?我想自己定义一个集合类,应该怎么做呢? 回答:这个问题问的好,如果查看ArrayList和Hasttable定义可以看到 ,她们都实现了 和 接口,这就是能用foreach的关键所在。 看一下数组的遍历: 那么如果我们自定义的类,能不能也像对数组一样进行遍历呢? 我们先试一下: 运行结果出现错误: 解释:要想使用foreach对自定义的集合类进行遍历,需要实现IEnmuerable接口。 解决方案: (1)在DepartMent类添加 然后让该类继承IEnumerator接口 (2)将光标定在 上,然后按alt +shift+F10,选择 选择第一项 (3)会出现这个 (4)改成这样 (5)这样就能用foreach遍历类了。 下面再看一下System.Colliction命名空间下的另一接口:ICollection 。他继承自IEnumerable。 文章来源: https://www.cnblogs.com/schangxiang/archive/2019/07/23/11229474.html

python第三次作业-mooc笔记

走远了吗. 提交于 2019-12-02 22:02:38
1.注册中国大学MOOC 2.选择北京理工大学嵩天老师的《Python网络爬虫与信息提取》MOOC课程 3.学习完成第0周至第4周的课程内容,并完成各周作业 4.提供图片或网站显示的学习进度,证明学习的过程 5.写一篇不少于1000字的学习笔记,谈一下学习的体会和收获。 第一周笔记: Python 网络爬虫与信息提取: 内容分为: Requests :自动爬取 HTML 页面自动网络请求提交 Robots.txt :网络爬虫排除标准 Beautiful Soup :解析 HTML 页面 Projects :实战项目 A/B Re :正则表达式详解提取页面关键信息 Scrapy :网络爬虫原理介绍,专业爬虫框架介绍 用管理员身份运行 cm, 执行 pip install requests ; Requests 库的 2 个重要对象: request , response , response 对象包含爬虫返回的内容了解及使用。 HTTP 协议及 Requests 库方法: Requests 库的 7 个主要方法: requests.request(): 构造一个请求,支撑以下各方法的基础方法 requests.get(): 获取 HTML 网页的主要方法,对应 HTTP 的 GET requests.head(): 获取 HTML 网页头信息的方法,对应于 HTTP 的 HEAD

SQL语句优化

匿名 (未验证) 提交于 2019-12-02 22:02:20
怎么加快查询速度,优化查询效率,主要原则就是应尽量避免全表扫描,应该考虑在where及order by 涉及的列上建立索引。   建立索引不是建的越多越好,原则是:   第一:一个表的索引不是越多越好,也没有一个具体的数字,根据以往的经验,一个表的索引最多不能超过6个,因为索引越多,对update和insert操作也会有性能的影响,涉及到索引的新建和重建操作。   第二:建立索引的方法论为:   多数查询经常使用的列;   很少进行修改操作的列;   索引需要建立在数据差异化大的列上   利用以上的基础我们讨论一下如何优化sql. 1、sql语句模型结构优化指导     a. ORDER BY + LIMIT组合的索引优化       如果一个SQL语句形如:SELECT [column1],[column2],…. FROM [TABLE] ORDER BY [sort] LIMIT [offset],[LIMIT];       这个SQL语句优化比较简单,在[sort]这个栏位上建立索引即可。     b. WHERE + ORDER BY + LIMIT组合的索引优化       如果一个SQL语句形如:SELECT [column1],[column2],…. FROM [TABLE] WHERE [columnX] = [VALUE] ORDER BY [sort]