这篇文章总结了关于二叉树的创建和各种遍历方式。二叉树的创建方式通过层次遍历顺序创建先序遍历顺序(带上叶子结点标识符)创建先序顺序+中序顺序中序顺序+后序顺序二叉树的递归方式先序遍历(递归+非递归)中序遍历(递归+非递归)后序遍历(递归+非递归)广度优先遍历(BFS)首先来定义一下节点的结构classNode():def__init__(self,val):self.val=valself.left=Noneself.right=None然后定义树类clas
系统 2019-09-27 17:57:12 2448
为什么要降维?高维情形下,样本数据稀疏,距离计算困难。为什么能进行降维?收集的数据虽是高维但与学习任务密切相关的也许仅仅是某个低维分布无监督降维:PCA最大重构性:找到一个超平面使得样本点在这个超平面的投影尽量分开。PCA也可以看作是逐一筛选方差最大方向;对协方差矩阵XX^T特征分解,取最大特征值及其特征向量;在去掉该特征值以及特征向量后,继续取最大特征值;关于PCA的几个问题:投影方向应该取多少才好?根据博客https://blog.csdn.net/m
系统 2019-09-27 17:56:39 2448
本文实例讲述了pythonflask框架实现传数据到js的方法。分享给大家供大家参考,具体如下:首先要清楚后台和前端交互所采用的数据格式。一般选JSON,因为和js完美贴合。后台返回的数据进行序列化在/homepageRecommend路由的view方法中返回序列化数据dict={"a":1,"b":2}importjsonjson.dumps(dict)2)fromflaskimportjsonifyjsonify(dict)#在调用jsonfiy有时会
系统 2019-09-27 17:53:56 2448
emm……真实的高三暑假是,整天无事可做然后找事,于是开始学习Python好的废话不多说,进入正题由题,作为一名初学者,想要玩转爬虫这类玩意还要花很大功夫。所以我就从简单的开始:提取XKCD漫画(网页简单,提取方便)使用requests和bs4模块提取网页内容+分析html,然后再存入硬盘内首先,requests和bs4都是Python的第三方库,使用pipinstallxxx(xxx是requests和bs4)安装它们requests库最主要的方法是re
系统 2019-09-27 17:49:30 2448
摘要数据分析与建模的时候大部分时间在数据准备上,包括对数据的加载、清理、转换以及重塑。pandas提供了一组高级的、灵活的、高效的核心函数,能够轻松的将数据规整化。这节主要对pandas合并数据集的merge函数进行详解。(用过SQL或其他关系型数据库的可能会对这个方法比较熟悉。)码字不易,喜欢请点赞!!!1.merge函数的参数一览表2.创建两个DataFrame3.pd.merge()方法设置连接字段。默认参数how是inner内连接,并且会按照相同的
系统 2019-09-27 17:56:16 2447
使用python画图,发现生成的图片在console里。不仅感觉很别扭,很多功能也没法实现(比如希望在一幅图里画两条曲线)。想像matlab一样单独地生成一个图片窗口,然后我在网上找了一个多小时,都没有找到想要的,要么仅仅是画图的教程,要么就是问题提出了,也没人回答。我记得曾经我使用过一行代码,可以实现这个功能的。最后果然在Historylog里面找到了:%matplotlibqt5显示图像于新生成的一个图片窗口%matplotlibinline在cons
系统 2019-09-27 17:54:39 2447
常用:type()函数,查看当前变量类型id()函数,查看当前变量地址help()函数,查找帮助文档Python3中有六个标准的数据类型:Number(数字)String(字符串)List(列表)Tuple(元组)Set(集合)Dictionary(字典)Python3的六个标准数据类型中:不可变数据(3个):Number(数字)、String(字符串)、Tuple(元组);可变数据(3个):List(列表)、Dictionary(字典)、Set(集合)N
系统 2019-09-27 17:53:28 2447
createtime:2019年7月8日我在网上找了好多,现在基本实现了传输视频的功能,其思路是:首先得先了解如何使用openCV采集摄像头数据,其次得了解pythonsocket网络编程。因为socket不能直接传输openCV采集的数据,所以还需要转码操作。在该版本我实现最基本的功能,客户端采集,服务端接收(也可以倒过来,看个人需求),使用类实现。服务端#!usr/bin/python#coding=utf-8importsocketimportcv2
系统 2019-09-27 17:50:00 2447
Centons下载安装python3.7之后,运行yum命令出错是因为python2.x版本与python3.x版本之间语法冲突的问题[root@linuxCentos~]#vim/usr/bin/yum#!/usr/bin/python2.7importsystry:importyum网上的办法基本上都是vim打开/usr/bin/yum将第一行#!/usr/bin/python3.x改为原来的#!/usr/bin/python2.x这样改完之后虽然yu
系统 2019-09-27 17:49:08 2447
python实现二级登陆菜单的代码如下所示:"""1.三级菜单注册登陆注销2.进入每一个一级菜单,都会有下一级的菜单"""user_item=dict()try:whileTrue:print('-------Welcomesir-------')input_choice=int(input('Pleaseenteryourchoice:1:Registration2:login3:logout:'))#用户输入自己的选择,会进入到相关的二级菜单ifinp
系统 2019-09-27 17:49:02 2447
实际上这是一种误读,read()并不是只能生效一次。之所以会有之生效一次的误解是因为在已经read完所有的字符后,没有重新打开(open)就接着进行了下一次read,此时指针已经移到了字符串末尾,所以不再能读取出任何字符了。'''【思考】:下面的代码会读出什么?'''a=f.read()b=f.read(-1)c=f.read(10)print(a)print(b)print(c)'''乍一看,会读出如下数据:thisisatestforthefuncti
系统 2019-09-27 17:48:35 2447
在利用Python进行系统管理的时候,特别是同时操作多个文件目录,或者远程控制多台主机,并行操作可以节约大量的时间。当被操作对象数目不大时,可以直接利用multiprocessing中的Process动态成生多个进程,10几个还好,但如果是上百个,上千个目标,手动的去限制进程数量却又太过繁琐,这时候进程池Pool发挥作用的时候就到了。Pool可以提供指定数量的进程,供用户调用,当有新的请求提交到pool中时,如果池还没有满,那么就会创建一个新的进程用来执行
系统 2019-09-27 17:48:11 2447
题目:在一个长度为n的数组里有所有数字都在0~n-1的范围内,数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次,请找出数组中任意一个重复的数字,例如,如果输入长度为7的数组[2,3,1,0,2,5,3],那么对应的输出是重复的数字2或者3。对原数组进行排序然后顺序查找,时间O(nlogn)空间O(1)利用哈希表解决,无需修改原数组,时间O(n)空间O(n)交换原数组中的元素,时间O(n)空间O(1)以下是第三种方法的实现defr
系统 2019-09-27 17:47:22 2447
requests是python实现的简单易用的HTTP库,使用起来比urllib简洁很多因为是第三方库,所以使用前需要cmd安装pipinstallrequests安装完成后import一下,正常则说明可以开始使用了。基本用法:requests.get()用于请求目标网站,类型是一个HTTPresponse类型importrequestsresponse=requests.get('http://www.baidu.com')print(response.
系统 2019-09-27 17:56:23 2446
问题在python中使用matplotlib画图,里面的中文会显示乱码方块。解决方法这是由于matplotlib默认使用的字体中不包含中文字符引起的,可以通过将中文字符加入到默认字体中解决。前提:查找本地都有哪些中文字体打开matplotlib字体,默认为C:\Users\用户名\.matplotlib,打开fontList.json,查找中文字体如simHei,song,kai等,分别对应简体黑、宋体、楷体等。查找到之后,其对应的name字段值即为我们接
系统 2019-09-27 17:53:08 2446