java决策树算法_机器学习算法小公司社招面试5则

大厂算法面试难度是......,没有经历过,看了招聘要求后,是真的把自己吓住了。对于没有算法经历,还没有名校计算机背景加成、没有论文加成的猿小明来说,可能小公司或者小团队是个好的选择吧。 面试经历发生在2018年7月~8月,3offer。时间点比较合适吧,赶上算法爆发,各种公司都尝试算法解决问题,但是搞算法的人还没有大量涌入市场。如果是现在的话,估计不好找到工作了,小公司机会也不多了,毕竟小公司不太需要算法。更多的还是大公司招聘算法,算法团队可能是新的、人不多,都是在做尝试。 ​算法面试大众问题汇总 当时深度学习还没这么犀利,所以大众问题还是主要集中在传统经典算法、数据处理、特征提取等。 (1)LR(必问)。这个涉及内容很多,自己也是实现过,用在过kaggle项目,但是很多理论还是说不清楚。面试遇到的问题:最大似然、loss function、推导、适合场景、参数、回归、分类、梯度下降(mini batch、sgd)。 (2)决策树相关。gbdt、xgboost、随机森林等。会问推导、算法流程、bag和boost模式区别、剪枝算法。 (3)模型欠拟合、过拟合、数据清理、特征选择等等,以及用什么方法来解决。 (4)机器学习整体处理流程。认识数据、数据清理、特征选择、数据变换、构建模型、模型训练、交叉验证…。 (5)写写代码,只遇到了leetcode简单题(主要没有大厂面试机会,小公司又不考,大点互联网会考) (6)讲讲简历上写的项目。我的只写了一个kaggle那个泰坦尼克问题(现在想想真是敢写啊,干到前5%也行,自己都没到)。还写了毕业论文和一些java工程,凑了一页多。 面试公司1——互联网金融(幸好没去) 很小的创业型公司,主业务是小额放贷,算法用于风险监控,大概几十个开发人员,无算法。这个公司打算招聘一个算法——就是面试的我。 一面,面试官是技术总监,完全不懂算法。聊得很开心,我也提醒他,他们需要一个有经验的人,我可能不太适合。哦,对了,面试中他拿了2罐冰镇饮料,他喝了,我没喝。然后面试到一半,他就肚子咕咕叫,然后厕所思考人生去了。 二面,隔周周六,在一个咖啡馆。本以为是合伙人聊聊业务,谁知道是真的机器学习面试。还问了源码实现、赛马问题(64匹马8条跑道,最少比赛次数找到最快的8匹马)。聊了好久,当场给了offer。据说面试人是哪个大厂的,每周去这个公司几次。总之最后我也没弄明白关系。不过有了之前的工作经历,这次问的比较多。那边总监团队说算法面试官是朋友关系,算法面试官说自己是合作伙伴,人力又说不打算短期招聘算法了。我也是被这种搞怕了,虽说工资对没经验的我还算高,但还是没去。 这个offer给的的确高,都能赶上算法平均工资了吧。为啥是幸好没去呢,18、19年都知道的,各种互联网金融公司倒闭、跑路、炸雷,自己经历过之前的小公司,也害怕了。 面试公司2——比较大的互联网金融(完败) 这个公司比较有名,老牌互联网,也是招聘算法做风控,面试了将近4个小时。 一面,面试官很好,把不会的还给我讲了。问了一些比较专业的问题。找到用户之间的关系,用哪种数据结构,如何进行搜索。这个题主要是风控用户之间互动场景,根据关系预测朋友间还款概率吧。基本是图结构,用矩阵或者稀疏矩阵存储,用数字对表示用户关系,有点像倒排索引。 二面,2个人,把我嘲讽了一番。主要是简历里边写了毕业论文的内容,包括凸优化、求解算法。说实话这些到现在我都不太会。然后还让我问问题,然后就是被嘲讽:连简历都说不明白,还有啥经验啊。 三面,主要是java面试。貌似是上边觉得我不合适,让java组来人试试。问了mysql,java基础等。 四面,人力。问一些为啥离职,期望工资、期望岗位等。由于自己强烈要求算法岗,java的话要了个高工资,算法岗相对低一些。然后就让我走了。 花絮:在等人力来的时候,有个员工问我:“您是来这里退款的吗?”,这个着实吓到我了,其实那会互联网金融公司已经开始暴雷了。 面试公司3——传统软件公司 给各种企业做软件服务的公司,团队据说有几百个开发,面试官也是不太懂算法。面了有半个小时,给了offer。 说是为了匹配工资,按照高级java头衔入职,做算法工作。也是没几个人的算法团队(很可能我就是第一个),还得兼顾开发,感觉有点怕,透露着各种奇怪的感觉。没啥实质算法内容面试。这个感觉面得很空虚,所以没去。 面试公司4——国企互联网团队 很大的公司,算法团队很小,刚组建,职位数据挖掘,面试很开心,也是入职的公司。 笔试1小时,涉及爬虫、正则表达式、机器学习基本流程、决策树等等,答得不好。 技术面40分钟,基本围绕分类、数据处理流程来问。涉及一些NLP的内容,不太会,也就没问太多。 第二天通知2面,面试官3个人——技术、人力和leader。差不多3、4周给了offer。虽说工资不高,但是感觉很好,一个国企,技术团队还没到100人,算法组当时也是只有1,2个人,不过能给比较充足的学习和尝试时间。 面试公司5——同学内推互联网(败了) 其实这个公司比较有名,旅游行业的,相对大厂来说是小公司吧。职位是推荐算法,一共耗时4个多小时吧,算上午饭一个多小时。 一面,一个和蔼的小哥哥技术面。面的很全面,机器学习、leetcode那种写代码(2个栈实现队列)、还有数学题(具体啥题忘了,大概是两个盒子装黑、白球,问取出白球概率)。 二面,貌似是leader。问了gbdt具体流程,还挺详细。我把gbdt论文里边的算法伪代码写出来了。还问了EM,这个真心不会。最后定的职位是java开发,负责算法模型和业务程序之间模块。 午休,同学带着去吃了他们的食堂,味道还不错。 三面,人力。据说被人力pass了,理由是之前工作换的频繁,这次找工作也没明确目标,职业规划不明确。奇葩的是,这个HR在后来被裁员了,据说是1年也没给团队招来俩人,在的人整天加班。 总结:必须要写一篇程序猿PK人力(HR),感觉HR对话很费劲,自己问问题也觉得不合适,还不够实力去怼她。总之一句话,就是憋屈。 如果您觉得还有价值,欢迎关注 @猿小明 ,长期更新程序猿酸甜苦辣,干货不断。 如果想随时互动交流获取资料,请关注公众号:迷茫猿小明

java邮件发送附件_批量给指定收件人发送邮件和指定附件

之前有给大家分享过一篇关于批量将word转成pdf的文件,然后将pdf文件批量按照指定收件人进行邮件发送的文章。文章可以参照: 不同附件的邮件批量发给不同的指定人 批量发送带PDF附件的邮件 昨天一台湾的网友咨询了这个问题,同时他也给我分享了他在网上下载的另外一个版本,个人觉得很非常实用,这里给大家分享一下。文末会分享链接,大家可以下载保存,万一以后用得上呢。先来看看怎么用吧,因为中间确实有个设置需要说一下,不然只是拷贝代码的话,还是会出错。 首先打开Excel文件,其中有两个工作表,第一个是发送的清单,里面的内容很简单,如下: 工作表 - 发送清单 另外一个工作表就是邮件的标题和正文: 工作表 - 正文 写好相应的文本后,点击发送邮件按钮后,自动弹出邮箱客户端Outlook,界面是这个样子的: Outlook发送邮件预览界面 回到Excel中,会返回一个对话框显示有多少封邮件要发送。(我这里只写了一个收件人,所以只显示了一封邮件) Excel中弹出对话框 来看看Excel中的代码吧。(不懂没关系,主要明白你拿去之后需要改哪些地方就可以了,非常容易。) Excel中的代码 代码很人性化,基本每一行都有注释。看看哪些地方值得关注以及后期如果拷贝代码后需要修改的。 代码中提到了这句: 代码中的设置 它这个其实是已经设置好了,如果你要拷贝代码进行使用的话,完成复制粘贴之后,运行之前需要进行一个设置,否则代码无法运行,会报错。设置如图所示: 点击工具下的引用: 工具 - 引用 调出引用-VBAProject对话框,如下: 引用对话框中的选项 一定要勾选这个:Microsoft Outlook 16.0 Object Library 这个根据你的outlook的版本来,之前那个朋友拷贝后无法运行,就是因为没有勾选此选项导致的。一定要看清楚,不要跟上面那个Microsoft Office 16.0 Object Library弄混了,各是各的。 接下来代码中: 代码中文字部分 这个发送清单,其实就是工作表的名称,对应就是Excel中的工作表这个: 对应工作表 再来就是这个“正文”: 代码中文字部分 对应的是Excel工作表中的这个: 对应工作表 如果你的工作表名称与代码中的不一致,需要进行更改。 其他的类似于Cells(1,2),意思就是单元格第1行第2列。 我将后面的代码中进行了一下修改,因为如果不修改的话,邮件会直接发出去,而不是先预览一下。如果你的邮件相当多,最好先预览测试一下。没问题的话,再改回去就可以了。这个地方: 代码预览邮件 display就是预览的意思,如果你无需预览直接发送,改成下面这样就可以了: 代码 - 发送邮件 希望这个工具对大家有用,再次感谢来自宝岛台湾网友Kve的分享。 文中提到的链接如下: 链接:https://pan.baidu.com/s/173i3jpJGPy-rvqg3RydM4g 提取码:wasg 如果本文对你有帮助,请分享给有需要的朋友或你的朋友圈,让大家一起高效工作。

kotlin使用AOP要注意的点

在kotlin中强调一种显式的声明,比如一个类要想被继承就要显式地写出open,否则一个类默认就是final类型的,这点和Java是不同的。 在SpringBoot项目(和Spring有关的)中使用kotlin并使用AOP,此时要注意,Spring中AOP的实现是动态代理,动态代理有两种方式: jdk动态代理cglib动态代理 而使用cglib的原理大概是cglib继承被代理的类,重写方法,织入通知,动态生成字节码并运行,因为是继承所以final类是没有办法动态代理的。所以再kotlin里,需要将所切的类和方法上加上open,不然会造成AOP相关注解不起作用的现象。 对于SpringBoot中使用jdk还是cglib,我猜测是通过判断是否是一个类,如果是的话就用cglib(当然,我还没有去看配置文件,而如果是使用单纯Spring或SSM之类的话是可以手动配置的,但我觉得按SpringBoot的特点来说的话不需要我们去配置) 如下图: 写下这篇博客来提醒自己

ABAQUS2020+vs2019+Inter Fortran2020子程序调试

ABAQUS2020+vs2019+Inter Fortran2020子程序调试 默认读者已经安装好上面三个软件,并且已经关联好这三个软件。 主要实现思路 ①编写好子程序,并设置子程序相关内容后,建立一个job。 ②使用子程序插件iSlove,此处不提供,需要联系插件作者付费购买。 ③修改abaqus2020的配置文件。 ④点击submit进入vs。 ⑤F5,进行调试,查看子程序中各变量的值等。

[记录]数据库小技巧

目录 --Oracle相关1. 使用PL/SQL登录时避免每次登录要输入登录信息2. 使用PL/SQL登录服务器数据库时,将带地址的库名为自己能读懂的库名 –Oracle相关 1. 使用PL/SQL登录时避免每次登录要输入登录信息 L跳过每次输入用户名和密码可以先找到PL/SQL的工具栏:工具->首选项->Oracle->登陆历史。从“历史”中找到你想要记住的登录信息,直接鼠标左边拖拽到“固定用户”中。看看右边,你会看到“用user/passw@db 格式输入用户”,即“用户名/密码@库名”,看看自己的用户内容是否复核这个格式,没有就修改。通过上述步骤就完成目的了。下次登录只需要点击用户名旁边的“···”,从第二部分选择自己想要登录的用户,就可以不用输入用户名,密码,库名信息了。 2. 使用PL/SQL登录服务器数据库时,将带地址的库名为自己能读懂的库名 在你安装Oracle数据库的客户端路径\network\admin\tnsnames.ora 文件,可以看到类似如下内容: ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = DESKTOP-R9RSOND)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )将ORCL改为自己想要的名字,HOST改为服务器数据库的地址,SERVICE_NAME改为库名重新打开PL/SQL后,你在登录时选择数据库就可以看到,自己刚才保存的易懂的名字的数据库了。配合第一个小技巧,使用更佳。 最后, 觉得文章对你有用的话,给个下面的三连吧(点赞,收藏,打赏) !

arcgis dem栅格立体感_ArCGIS中DEM地形鞍部提取

01 流程图 利用水文分析提取山脊线及山谷线,山脊线相当于分水线,山谷线相当于山谷线。分水线是水流的起源点,这些栅格的水流方向只存在流出方向而不存在流入方向,所以汇流累积量为零。通过对零值的提取就可以得到山脊线。 山谷线相当于汇水线要用反地形求出,即用较大值减去DEM,DEM中山脊线就成为山谷线,山谷线变为山脊线,用求山脊线的方法求出山谷线,分别利用正反地形求交验证。 DEM进行填洼,利用水文分析求出流向流量,再提取出汇流累积量为零得值与正地形求交,即得到分水线也就是山脊线。用反地形求流向流量提取汇流累积量为零的部分与负地形求交就是山谷线。 将山脊线与山谷线求交得到鞍部点。 图1-1 流程图 02 操作步骤 2.1 正地形、等高线和晕渲图的提取 (1)加载DEM数据,在ArcToolbox中选择Spacial Analyst Tools → Neighborhood→Focus Statistics工具,输入dem,利用11*11窗口计算平均值。设置如图2-1所示。 图2-1 焦点统计设置 (2)在ArcToolbox中选择Spacial Analyst Tools →Map Algebra →Raster Calculator工具,对原始数据与焦点统计后的DEM做减法。结果如图2-2所示。 图2-2 减法计算结果 (3)在ArcToolbox中选择Spacial Analyst Tools →Reclass→Reclassify工具,对减法运算结果进行重分类,分级界线为0。将大于0的区域赋值为1,小于0的区域赋值为0即得到正地形;设置如图2-3所示,结果如图2-4所示。 图2-3 正地形重分类设置 图2-4 正地形结果图 (4)生成等值线:在ArcToolbox中选择Spacial Analyst Tools →Surface→Contour工具,输入原始DEM数据生成间距为40的等值线。设置如图2-5所示,结果如图2-6所示。 图2-5 生成等值线设置 图2-6 生成等值线结果图 (5)生成山体阴影:在ArcToolbox中选择Spacial Analyst Tools →Surface→hillshade工具,输入原始DEM,其他设置按默认如图2-7所示,结果如图2-8所示。 图2-7 生成山体阴影设置 图2-8 DEM晕渲图 2.2 山脊线的提取 (1)填洼:加载DEM数据,在ArcToolbox中选择Spacial Analyst Tools →Hydrology→Fill工具,输入DEM进行填洼. (2)流向计算:在ArcToolbox中选择Spacial Analyst Tools → Hydrology → Flow Direction工具,输入填洼后的DEM,得到流向数据,设置如图2-9所示,结果如图2-10所示。 图2-9 流向生成设置

C#(WinForm)实现二维码的生成与解码

一、二维码的原理 工欲善其事,必先利其器。要生成二维码,首先得了解一下,什么是二维码。关于二维码,百度百科是这么说的:二维条码(二维码)是用某种特定的几何图形按一定规律在平面(二维方向)分布的黑白相间的图形记录数据符号信息的。二维码是DOI(Digital Object Unique Identifier,数字对象唯一识别符)的一种。二维码的优点:二维码存储的数据量更大;可以包含数字、字符,及中文文本等混合内容;有一定的容错性(在部分损坏以后可以正常读取);空间利用率高。 好吧。关于二维码的原理我也是读了个大概。了解了一些二维码的概念。虽然平时身边离不开二维码,但我们却很少知道,为什么二维码长成这样?现在都是彩屏时代,为什么二维码却是黑白的?这是因为:二维码的黑色表示二进制的“1”,白色表示二进制的“0”(原因就不说了吧)。 二、二维码加密与解密 首先去http://zxingnet.codeplex.com/下载一个资源文件,下载后解压,找到文件夹"net4.5",然后找到Zxing.dll,引入到工程文件中。 引入dll后,自己可以根据需要完成相关二维码的功能。如下图: 核心代码: 生成: 1 /// <summary> 2 /// 生成二维码 3 /// </summary> 4 /// <param name="msg">二维码信息</param> 5 /// <returns>图片</returns> 6 private Bitmap GenByZXingNet(string msg) 7 { 8 BarcodeWriter writer = new BarcodeWriter(); 9 writer.Format = BarcodeFormat.QR_CODE; 10 writer.Options.Hints.Add(EncodeHintType.CHARACTER_SET, "UTF-8");//编码问题 11 writer.Options.Hints.Add( 12 EncodeHintType.ERROR_CORRECTION, 13 ZXing.QrCode.Internal.ErrorCorrectionLevel.H 14 15 ); 16 const int codeSizeInPixels = 250; //设置图片长宽 17 writer.Options.Height = writer.Options.Width = codeSizeInPixels; 18 writer.

poster模板_【硕博之家】说说硕博生参加国际学术会议的墙报Poster那些事

前两天周末国际会议ICSMD2020在西安刚刚闭幕,小编我闲来无事也去溜达了两圈,作为一名科研民工搬砖十来年了,在会场里晃悠的时候突然想跟大家交流一下参加国际学术会议关于墙报Poster的一点点理解。 与其他国际会议一样,本次会议也分了两种交流方式,即口头报告(Oral Presentation)和墙报(Poster Presentation)。一般情况下,大家会认为口头报告稍微会更受重视一点,展示度也更高,所以口头报告会相对比较完整地介绍自己的论文研究工作,墙报多是比较年轻的学者或者研究生喜欢用这种方式展示自己的研究进展。我个人理解是有些学生其实可能是有点怵用英语进行演讲汇报,还有些是觉得做PPT太麻烦了(懒是真的懒,哈哈)。当然了,有时候会议会限制报告人数的,这样大家也没得选对不对只能Poster走起,是不是,也有的参会者就是喜欢做墙报进行交流,所以各有各的选择都挺好的。忍不住就想到了小时候《新华字典》中的这句话,“张华考上了北京大学;李萍进了中等技术学校;我在百货公司当售货员:我们都有光明的前途”。 会议主办方会提前在日程Schedule中安排墙报展示时间,一般约一个小时左右,有时候会安排在茶歇时间,有时候会在下午口头报告之前,也有专门留出一个下午进行墙报展示的。下图就是会议墙报展示区,可以看到主办方为每一幅图都进行了编号。需要注意的是,墙报展示者(一般是作者之一)需要在规定的展示时间里在自己的墙报那老老实实地候着,这样如果有感兴趣的参会者需要交流的话可以当面进行。为了鼓舞大家,很多会议也会评选优秀的墙报(最佳墙报奖),会有评委逐个的观看墙报并提问,所以想拿个获奖证书的童鞋们可得花点心思做好展示了,交流的时候建议最好是自己亲自到场,而不是找个同学完全不懂你研究内容的去敷衍了事。有些同学一贴上去以后人就跑的没影子了,所以你会发现除了吃自助餐的时候人头满满的,会场里基本找不到几个人。 在本次会议的墙报区晃悠了一圈,走到编号为34的墙报这发现挺不错的(个人观点啊),忍不住我就唱出了“缘分让我们,相遇乱世以外;命运却要我们,会议中交流;也许科研遥远,在光年之外;我愿守候墙报里,为你等待;我没想到为了你,我能科研到…”同学们大声一起唱起来… 既然感兴趣了那必须聊一聊是不是,那还能怎么滴。所以我就特别地跟展示者交流了一下,这位同学是来自上交机器人所的任杰骥(感谢任同学热情的分享),特别喜欢他的气质,很符合热爱科研的那种宅宅的但是提到研究就很热情的那种,长相在那么几瞬间让我恍惚看成吴恩达了,还真是挺像的,哈哈。接下来我们看看这份墙报啊,这个我个人比较喜欢,仁者见仁吧,每个人的审美不同,所以我也就不解释了。不过此处有个小常识跟小trick还是可以大家一起分享的。大家可以看看最底下的单位,关于“之江实验室”的小常识,大家不要觉得诡异啊,英文就是“Zhejiang Lab”。关于小trick哪,大家认真观察一下,在右下角的地方作者很贴心地做了个小纸袋,里面专门放着一大叠小卡片(精装双面彩印哦)来介绍工作,这样感兴趣的学者们可以自由取阅,平时大家生活中收到的小卡片一般都不太正经,往往出门右拐就扔了,这次这个我可是挺喜欢的,还专门扫描了给大家看看啊。每个细节都值得大家学习! 接下来给同学们看看另外一个水准一般的墙报Poster,大家可以看到这里面文字过于多,而且根据原则Posters rarely need abstracts,这篇墙报是不美观的,可以文字简洁下,图文并茂点最好。 我简单查了一下,在我曾经混迹过的NYU图书馆网站里,有专门介绍关于Poster的内容。 网址: Research Guides: How to Create a Research Poster: Poster Basics​guides.nyu.edu 关于Poster是这么定义的:“What is a Research Poster?”请看如下的描述,如果看不懂的童鞋们,那你也不用做墙报了是不是,去老老实实地吃点心喝咖啡跟茶就好了。 Posters are widely used in the academic community, and most conferences include poster presentations in their program. Research posters summarize information or research concisely and attractively to help publicize it and generate discussion. The poster is usually a mixture of a brief text mixed with tables, graphs, pictures, and other presentation formats.

【错误解决】Springboot中Plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘ not found

问题:Plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘ not found 解决: 很多人说加上版本号就可以了 但是我光加版本号不可以 clean了也不可以 后面不光加了版本号,还加了下面的字段才可以,记录在此! <build> <plugins> <!-- 打jar包时如果不配置该插件,打出来的jar包没有清单文件 --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.2.6.RELEASE</version> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build>

彻底关闭360安全卫士弹窗广告方法

360安全卫士有时候确实很实用,但是就是广告超级烦人,开机广告满屏都是,有的广告关闭都找不到关闭的按钮,确实让人很是不爽,现在教大家一招,直接清爽无广告。 下面这三个文件是罪魁祸首 C:\Program Files (x86)\360\360Safe\SoftMgr\360speedld.exe C:\Program Files (x86)\360\360Safe\SoftMgr\360DayPop.exe C:\Program Files (x86)\360\360Safe\Utils\360NewsPop.exe 开始: 方案: 1、用安全模式进入系统(注意一定要在安全模式下进行,不然没法操作) 2、打开C:\Program Files (x86)\360\360Safe\SoftMgr\找到360DayPop.exe和360speedld.exe。 3、删除这两个文件,新建文本文件后更名为360DayPop.exe和360speedld.exe,把这两个文件设置为只读,设置权限为不可修改。 4、打开C:\Program Files (x86)\360\360Safe\Utils\找到360NewsPop.exe。 5、删除这个文件,新建文本文件后更名为360NewsPop.exe,把这个文件设置为只读,设置权限为不可修改。 6、重启,看到没弹窗是不是很爽。

python电脑怎么打开空白页面_关于最新版jupyter浏览器打开空白问题的解决

Jupyter Notebook 是一个 Web 应用程序,(此前被称为 IPython notebook)是一个交互式笔记本,支持运行多种编程语言。 它便于创建和共享程序文档,支持实时代码、数学方程、可视化和 Markdown。便于用来进行数据清洗和转换、数值模拟、统计建模、机器学习等等。 对于从事机器学习行业的人来说,Jupyter真是一个得力助手! 但是,最近有不少伙伴反应,安装完新版Jupyter后,在浏览器中打开是空白!!! 小叮当测试了一下,还真是这个问题! 这真是令人奇怪! 做为一名全栈开发业余人员,我还是有点前端素养的,于是我熟练的按下了F12进行查看,对,我用的是360浏览器,爬虫工程师最不喜欢的浏览器,然而,我就是要在这种浏览器下练技术~ 来到熟悉的界面,选择network 然而,哇得一声,哭了,这,,,还是什么都没有! 白白的苍茫是jupyter对我的爱,对没错,像极了爱情! 机智的我看到了下面的提示,于是我潇洒的按下了“ctrl+F5”一套操作犹如行云流水一气合成~ 果然,真相逐渐浮出水面,我的内心得到了稍许的安慰。 此时,我想,没毛病啊,jupyter的内容都加载进来了鸭!!! 可浏览器,依旧是一首“空空如也”送给大家。 突然灵光一闪,以前的经验告诉我,去看看控制台(console)可能会有新的发现~ 果然,没让我失望,又是一大堆的BUG等我去解决!!!! 没关系,生活就像一面镜子,对待世界要学会微笑。 面对bug,虽然不是很扎实的英语,却帮了我的大忙。我发现,BUG的内容大多都是说, 翻译成人话就是,浏览器拒绝了你的执行脚本,这个文件是“xxx.js”因为MIME类型被限制为“text/plain”。 于是,我恶补一下MIME的有关知识 MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。 了解了这个后,感觉问题还是不能解决,想了3分钟,我觉得,这个问题只有网络能帮我解决了。于是,经过一番搜索“MIME类型text/plain”,竟然在github上发现了一位大佬https://github.com/ciaranlangton, 经过探索,大佬和我发现问题的思路一样,真是英雄所见略同啊! 可见,我跟大佬的距离就差那么一点点~ 好了,话不多说,我们来解决jupyter最新版(5.7.6)的空白问题。 解决方案: (以pip安装的jupyter为例进行说明,道理都是一样~) (1)进入python安装目录的site-packages(第三方安装库), 找到notebook文件夹 (2)在noteboo文件夹下找到notebookapp.py文件 (3)用记事本,或python自带的IDE打开,使用“ctrl+F"查找 ”init_mime_overrides(self) (4)为函数init_mime_overrides(self),增加代码,来支持浏览器自动加载js文件。 如下所示 (5)ctrl+s 进行保存,然后关闭文件 之后,你就可以快乐地打开CMD,输入jupyter notebook 此时,你就会发现,终于可以见到久违的jupyter界面了 来,赶紧new一段代码,来运行庆祝一下吧~

python读取csv数据出错_在python中读取csv文件时出现错误“no such file or directory”...

在不包含该文件的目录中运行Python脚本时,可能会遇到此错误。 听起来很容易修复,将CSV文件放在与.PY文件相同的文件夹中。但是,当您在类似于IDE的VSCode下运行时,当命令执行python文件时,它可能会cd输出到另一个目录。PS C:\git\awesome> cd 'c:\git\awesome'; ${env:PYTHONIOENCODING}='UTF-8'; ${env:PYTHONUNBUFFERED}='1'; & 'C:\Program Files (x86)\Python37-32\python.exe' 'c:\Users\jeremy\.vscode\extensions\ms-python.python-2019.9.34911\pythonFiles\ptvsd_launcher.py' '--default' '--client' '--host' 'localhost' '--port' '1089' 'c:\git\Project\ReadCSV.py' 看看我是如何在我的可怕的回购和第一个命令是:cd'c:\ git\awesome' 然后它执行python文件:“c:\git\Project\ReadCSV.py” 所以它期望CSV文件在“c:\ git\awesome”中。 若要修复此问题,请使用完整的文件名或CD指向包含要读取的CSV文件的目录。

添加弹窗_清除广告弹窗妙法之二:弹窗过滤法

清除广告窗口妙法之二:弹窗过滤法 通过上面的方法,可以清除八九成的广告,但是由于有些软件在程序开发中并未在设置模块中加入关停广告功能,所以我们还需要用下面的这种方法,彻底的清除电脑中的弹窗,还你一个清洁电脑工作环境。 以下是几个比较顽固的广告弹窗及其对应的程序: 1、FlashHelperService右下角弹窗----FlashHelperService.exe 2、360每日趣玩中间弹窗---360DayPop.exe 3、360浏览器推游戏窗口---360se.exe 4、360游戏管家中间弹窗--GameMaster.exe 5、360浏览器新闻窗口---MultiTip.exe 6、360日历----360Clock.exe 7、360浏览器推荐 分析这些弹窗所触发的程序,显然如果要删除这些程序是不行的。但我们用下面的一种方法,完成清除弹窗 一、安装弹窗过滤软件 第一步、安装360安全卫士,从"功能大全"中使用"电脑安全》弹窗过滤" 第二步:打开弹窗过滤,开启"强力模式" 第三步:添加所有的弹窗并过滤 1、点击"添加弹窗",可以把软件中不能设置的弹窗加进来。 特别说明:在弹窗过滤窗口中,可以加到桌面上。 二、浏览器广告弹窗过滤插件 第一步:在360浏览器中安装广告拦载插件 第二步:安全防护中心 。设置安全防护中心里的"优化所有广告" 第三步:设置浏览器的internet选 项 。在浏览器右上角的菜单中,找到工具,再从工具中找到"internet选项" 找到隐私选项,并启用"弹出窗口阻止程序",同时设置并启用"高:阻止所有弹窗"

l360废墨收集垫清零_爱普生打印机废墨吸收垫已满,爱普生打印机清零一分钟就能学会...

爱普生喷墨打印机提示废墨吸收垫已到满这是需要清零了 清零前请取消当前所有打印任务,打印机用USB线接电脑并开启 1.双击[Resetter.exe]启动软件。 2.点击[Select],选择Port打印机型号,然后点[OK],如下图。 [如果port下拉列表中找不到你的打印机,请更换USB接口,并重新开打印机重试。] 3.点击[Particular adjustment mode]进入主菜单. 如下图。 4.选择[Waste ink pad counter]然后点[OK]. 如下图。 5.点击方框打上[V],然后点击[Initialiation],接着点[确定] 如下图。[如果清零过程中报错,请取消打印任务并重开打印机再清,如果还不行请重启电脑再试] 6.蓝色进度条跑完提示[plese turn off the printer] 请关闭打印机,然后点击[确定],接着点[确定]重开打印机。如下图。 这样清零工作已经完成,您可以正常使用打印机了。 PAGE - 1 -

mysql数据分析实战

使用英国某零售平台交易数据 # 查看特征和类型 # 发票编号、商品名称、简介、数量、日期、单价、用户ID、国家 DESC uk # 查看前5行 SELECT * FROM uk LIMIT 5; 1 缺失值检测 # 总行数、各字段的行数(是否存在缺失值) SELECT COUNT(*),COUNT(invoiceno),COUNT(stockcode),COUNT(description), COUNT(quantity),COUNT(invoicedate),COUNT(unitprice),COUNT(customerid), COUNT(country) FROM uk; # 共541909行,其中发票编号、描述、customerid存在缺失 2 异常值检测 数值型的数量和单价可能存在异常 【数量和单价】 SELECT MAX(quantity),MIN(quantity),MAX(unitprice),MIN(unitprice) FROM uk; SELECT COUNT(*) FROM uk WHERE quantity<=0 # 10000多条 SELECT COUNT(*) FROM uk WHERE unitprice<=0 # 2条异常 # 去掉2条小于0的,将10000条的变为正数 【样本时间范围】-2010-12-01到2011-12-09 SELECT MAX(invoicedate),MIN(invoicedate) FROM uk; 【每月记录数】-没有很少的 SELECT YEAR(invoicedate),MONTH(invoicedate),COUNT(*) FROM uk GROUP BY YEAR(invoicedate),MONTH(invoicedate); 3 重复值检测-536641,541909存在重复值 SELECT COUNT(*) FROM (SELECT DISTINCT * FROM uk) t; SELECT COUNT(*) FROM uk; 4 处理缺失、异常、重复

python字符串对齐.format_python字符串格式化之.format

python字符串格式化之.format syntax: str.format(args) 创建模板 {[index][:[fill][align][sgin][#][width][.percision][type]]} index: 表示在str中的索引位置 如果不指定,默认先后顺序自动分配 如果指定,必须从0开始,依次指定 fill: 指定空白处填充的字符 align:指定对齐方式,与width一起使用 "<" 左对齐 ">" 右对齐 "=" 内容右对齐,将#指定的符号放在最左侧 "^" 中间对齐@ sgin: 指定有无符号 "+" 整数加正号,负数加负号 "-" 正数不变,负数加负号 "" 空值表示正数加空格,负数加负号 # 对于二进制,八进制,十六进制而言,如果加上#号,显示时会加0b/0o/0x前缀 width 指定所占宽度 .percision 指定保留小数位数 type 指定类型 格式化字符 | 格式化字符 | 说明 | | ------------ | ----------- - | | s | 字符串 | | d | 十进制整数 | | c | 将十进制整数自动转换为对应的unicode字符 | | e | 科学计算法 | | g | 自动在e和f中切换 |

zabbix监控哪些东西_这篇监控选型真的看完你就懂!

之前,我写过几篇有关「线上问题排查」的文章,文中附带了一些监控图,有些读者对此很感兴趣,问我监控系统选型上有没有好的建议? 目前我所经历的几家公司,监控系统都是自研的。其实业界有很多优秀的开源产品可供选择,能满足绝大部分的监控需求,如果能从中选择一款满足企业当下的诉求,显然最省时省力。 这篇文章,我将对监控体系的基础知识、原理和架构做一次系统性整理,同时还会对几款最常用的开源监控产品做下介绍,以便大家选型时参考。内容包括3部分: 必知必会的监控基础知识; 主流监控系统介绍; 监控系统的选型建议。 一、必知必会的监控基础知识 监控系统俗称「第三只眼」,几乎是我们每天都会打交道的系统,下面 4 项基础知识我认为是必须要了解的。 1、监控系统的7大作用 正所谓「无监控,不运维」,监控系统的地位不言而喻。不管你是监控系统的开发者还是使用者,首先肯定要清楚:监控系统的目标是什么?它能发挥什么作用? 实时采集监控数据:包括硬件、操作系统、中间件、应用程序等各个维度的数据; 实时反馈监控状态:通过对采集的数据进行多维度统计和可视化展示,能实时体现监控对象的状态是正常还是异常; 预知故障和告警:能够提前预知故障风险,并及时发出告警信息; 辅助定位故障:提供故障发生时的各项指标数据,辅助故障分析和定位; 辅助性能调优:为性能调优提供数据支持,比如慢SQL,接口响应时间等; 辅助容量规划:为服务器、中间件以及应用集群的容量规划提供数据支撑; 辅助自动化运维:为自动扩容或者根据配置的SLA进行服务降级等智能运维提供数据支撑。 2、使用监控系统的正确姿势 出任何线上事故,先不说其他地方有问题,监控部分一定是有问题的。 听着很甩锅的一句话,仔细思考好像有一定道理。我们在事故复盘时,通常会思考这3个和监控有关的问题:有没有做监控?监控是否及时?监控信息是否有助于快速定位问题? 可见光有一套好的监控系统还不够,还必须知道「如何用好它」。一个成熟的研发团队通常会定一个监控规范,用来统一监控系统的使用方法。 了解监控对象的工作原理:要做到对监控对象有基本的了解,清楚它的工作原理。比如想对JVM进行监控,你必须清楚JVM的堆内存结构和垃圾回收机制; 确定监控对象的指标:清楚使用哪些指标来刻画监控对象的状态?比如想对某个接口进行监控,可以采用请求量、耗时、超时量、异常量等指标来衡量; 定义合理的报警阈值和等级:达到什么阈值需要告警?对应的故障等级是多少?不需要处理的告警不是好告警,可见定义合理的阈值有多重要,否则只会降低运维效率或者让监控系统失去它的作用; 建立完善的故障处理流程:收到故障告警后,一定要有相应的处理流程和oncall机制,让故障及时被跟进处理。 3、监控的对象和指标都有哪些? 监控已然成为了整个产品生命周期非常重要的一环,运维关注硬件和基础监控,研发关注各类中间件和应用层的监控,产品关注核心业务指标的监控。可见,监控的对象已经越来越立体化。 这里,我对常用的监控对象以及监控指标做了分类整理,供大家参考。 1)硬件监控 包括:电源状态、CPU状态、机器温度、风扇状态、物理磁盘、raid状态、内存状态、网卡状态。 2)服务器基础监控 CPU:单个CPU以及整体的使用情况; 内存:已用内存、可用内存; 磁盘:磁盘使用率、磁盘读写的吞吐量; 网络:出口流量、入口流量、TCP连接状态。 3)数据库监控 包括:数据库连接数、QPS、TPS、并行处理的会话数、缓存命中率、主从延时、锁状态、慢查询。 4)中间件监控 Nginx:活跃连接数、等待连接数、丢弃连接数、请求量、耗时、5XX错误率; Tomcat:最大线程数、当前线程数、请求量、耗时、错误量、堆内存使用情况、GC次数和耗时; 缓存 :成功连接数、阻塞连接数、已使用内存、内存碎片率、请求量、耗时、缓存命中率; 消息队列:连接数、队列数、生产速率、消费速率、消息堆积量。 5)应用监控 HTTP接口:URL存活、请求量、耗时、异常量; RPC接口:请求量、耗时、超时量、拒绝量; JVM :GC次数、GC耗时、各个内存区域的大小、当前线程数、死锁线程数; 线程池:活跃线程数、任务队列大小、任务执行耗时、拒绝任务数; 连接池:总连接数、活跃连接数; 日志监控:访问日志、错误日志; 业务指标:视业务来定,比如PV、订单量等。 4. 监控系统的基本流程 无论是开源的监控系统还是自研的监控系统,监控的整个流程大同小异,一般都包括以下模块: 数据采集:采集的方式有很多种,包括日志埋点进行采集(通过Logstash、Filebeat等进行上报和解析),JMX标准接口输出监控指标,被监控对象提供REST API进行数据采集(如Hadoop、ES),系统命令行,统一的SDK进行侵入式的埋点和上报等; 数据传输:将采集的数据以TCP、UDP或者HTTP协议的形式上报给监控系统,有主动Push模式,也有被动Pull模式; 数据存储:有使用MySQL、Oracle等RDBMS存储的,也有使用时序数据库RRDTool、OpentTSDB、InfluxDB存储的,还有使用HBase存储的; 数据展示:数据指标的图形化展示; 监控告警:灵活的告警设置,以及支持邮件、短信、IM等多种通知通道。 二、主流监控系统介绍 下面再来认识下主流的开源监控系统,由于篇幅有限,我挑选了3款使用最广泛的监控系统:Zabbix、Open-Falcon、Prometheus,会对它们的架构进行介绍,同时总结下各自的优劣势。 1、Zabbix 老牌监控优秀代表。 Zabbix 1998年诞生,核心组件采用C语言开发,Web端采用PHP开发。它属于老牌监控系统中的优秀代表,监控功能很全面,使用也很广泛,差不多有70%左右的互联网公司都曾使用过 Zabbix 作为监控解决方案。

Windows系统C语言获取文件夹来的所有文件名的方法

Windows系统C语言获取文件夹来的所有文件名的方法,代码如下: #include <io.h> #include <stdio.h> #include <direct.h> #define MAX_LEN 4096 int main(void) { char root[] = "E:\\Workspace"; struct _finddata_t file; intptr_t hFile; char buf[MAX_LEN]; if (_chdir(root)) { printf("打开文件夹失败: %s\n", root); return 1; } hFile = _findfirst("*.c", &file); while (_findnext(hFile, &file) == 0) { sprintf_s(buf, MAX_LEN, "%s\\%s", root, file.name); printf("%s\n", buf); } return 0; } 下面是网友提供的方案,仅供参考: #include <windows.h> #include <tchar.h> #include <stdio.h> #define BUFSIZE 4096 #define LONG_DIR_NAME TEXT("c:\\longdirectoryname") void _tmain(int argc, TCHAR *argv[]) { DWORD retval=0; BOOL success; TCHAR buffer[BUFSIZE]=TEXT("

python语言是开源跨平台的语言_python是跨平台的语言吗

Python是跨平台的,免费开源的一门计算机编程语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。 支持常见的主流平台,如AIX、HPUX、Solaris、Linux、Windows等,除Windows外常见的Unix、Linux平台均带有原生的Python,但版本一般较低。关于跨平台和他跨平台语言一样,要注意有些个别模块是单一平台特有的,整体的跨平台性还是很好的,不必为适应多平台写多套代码。 但这不是说一点限制都没有:首先,同一个版本的中间文件.py和.pyc以及.pyo是跨平台的;其次,PC与移动终端,如:手机、Pad不可跨平台(原因见下一条);最后,不能跨处理器构架,如:Intel与ARM,64位与32位。 python课程免费试听预约 地区: 北京 天津 上海 江苏 浙江 山东 江西 安徽 广东 广西 海南 辽宁 吉林 黑龙江 内蒙古 山西 福建 河南 河北 湖南 湖北 四川 重庆 云南 贵州 新疆 西藏 陕西 青海 宁夏 甘肃 姓名: 手机: Python还具有以下优点: 1. 简单:Python奉行简洁主义,易于读写,它使你能够专注于解决问题而不是去搞明白语言本身。 2. 免费:Python是开源软件。这意味着你不用花一分钱便能复制、阅读、改动它,这也是Python越来越优秀的原因——它是由一群希望看到一个更加优秀的Python的人创造并经常改进着的。 3. 兼容性:Python兼容众多平台,所以开发者不会遇到使用其他语言时常会遇到的困扰。 4. 面向对象:Python既支持面向过程,也支持面向对象编程。在面向过程编程中,程序员复用代码,在面向对象编程中,使用基于数据和函数的对象。 5. 丰富的库:Python标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。 6. 规范的代码:Python采用强制缩进的方式使得代码具有极佳的可读性。 7. 可扩展性和可嵌入性。如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。

x86汇编入门

Intel® 64 and IA-32 Architectures Software Developer’s Manual 文档官方地址: https://software.intel.com/sites/default/files/managed/39/c5/325462-sdm-vol-1-2abcd-3abcd.pdf 很好的入门文档:https://www.ibm.com/developerworks/cn/linux/l-assembly/ 汇编语言由三部分组成: 汇编指令:跟机器指令一一对应,实际就算一个个的助记符。有 AT&T 和 INTEL 两种语法伪指令:给编译器看,用于指示编译器该如何做。不同编译器的语法不同,有 NASM、GNU as 和 MASM 三种常用编译器运算符:±*/ 之类的符号 汇编指令 具体可以参考:https://blog.csdn.net/kennyrose/article/details/7575952 AT&T 和 INTEL 两种语法的主要差异有: -AT&TINTEL操作数方向从左向右从右向左立即数表示方式$0x0130h寄存器表示方式%eaxeax助记符指定操作数长度b8位,w16位,l32位, movl $lb, %eaxmov eax, dw ptr lb长跳转和调用ljmp $sect, $offjmp sect:off内存单元圆括号 mov 5(%ebx), %eax方括号 mov eax, [ebx + 5]间接寻址方式%segreg:disp(base,index,scale)segreg:[base+index*scale+disp]注释单行用 # 或 // 多行用 /* ... */只有; AT&T 语法比较难受,但是 UNIX 类系统的源码都在用,所以还是要学习。 x86 和 x86-64 平台 这两个平台,一个是 32 位,一个是 64 位,其系统调用编号完全不同。 汇编编译器 NASM:INTEL 语法,跨 Linux 和 Windows 平台。GNU as:默认 ATT 语法,可以通过 .