2 Geeksongs

尚未进行身份认证

我要认证

本科就读于悉尼大学计算机系,对母校所发明的自动驾驶slam颇为感兴趣。

等级
TA的排名 5w+

Python:__eq_和__str__函数的用法

一.__eq__方法在我们定义一个类的时候,常常想对一个类所实例化出来的两个对象进行判断这两个对象是否是完全相同的。一般情况下,我们认为如果同一个类实例化出来的两个对象的属性全都是一样的话,那么这两个对象是相同的。但是如果我们直接用"==”来判断这两个对象知否相等,那么结果一定是不相等的,因为这两个对象的地址一定不同,它们在内存当中的不同区域,比如我们有代码:class Item:...

2020-06-06 11:23:00

Python: strip()和split()的用法与区别

一.strip()strip用于字符串头部和尾部的指定字符串,默认为空格或换行符。比如我们有字符串:str="123123\n"我们使用strip方法::str.strip()因此将会输出:'asdasdasd'我们可以看到尾部的换行符被删去了,现在我们来删除自己所指定的字符串,首先有字符串:str="I love I"str.strip("I")#删除...

2020-06-05 15:51:00

利用栈(Stack)实现树(tree)的深度优先搜索(Python)

树的结构如下所示:我们使用深度优先搜索对其进行遍历:class Node: def __init__(self, id, anime): self.id = id self.anime = anime self.left = None # <Left node> self.right = N...

2020-05-12 09:17:00

Python :生成器(generator) 上

在Python当中吗,生成器是一种比较特殊的数据结构,也是十分常见的数据结构,它和列表推倒式的书写方法一致,只是最外面的列表中括号被替换成了括号。凡是最外面是括号的推倒式则是生成器,在生成器当中我们不能够像列表一样通过索引得到一个元素的信息,而是需要调用__next__()方法或者next()方法才能得到生成器元素当中的信息。下面是一个简单的列表推倒式,我们和生成器对比对比:list...

2020-05-11 16:42:00

Python :集合推导式和字典推导式

集合推导式十分简单,和列表推导式是同一个用法,但是我们使用集合推倒式对列表推导式进行遍历之后,最后形成的是一个集合,而不是一个列表,而集合当中的数字是不重复的。如下所示:>>> list=[1,2,54,67,2,3,5,32,2,2,4,4,4,4]>>> {num for num in list}因此可得新的集合:{32, 1, 2,...

2020-05-11 16:10:00

Python : 将字符串拆分为单个字母所组成的列表并合并单个字母

字符串拆分成由单个字母组成的列表:string="asdasd"print(list(string))输出:['a', 's', 'd', 'a', 's', 'd']将单个字母组成的列表进行合并:string="asdasd"print(list(string))string_two=list(string)print("".join(string_two))...

2020-05-11 15:54:00

Python: 列表推导式

在Python语言当中,一个很神奇的特性则是列表推到式了,它能够从一个列表里面筛选出你满意的部分,并重新组成一个列表,甚至可以对筛选的列表的内容进行修改比如说我们有一维列表:list=[1,3,5,6,2,34,7,3,5,8]我们想把其中大于10数字抽取出来,并重新通过append()方法生成一个大于数字10的列表,因此书写列表推倒式:[num for num in li...

2020-05-11 15:44:00

数据结构与算法(Python版):用队列(Queue)处理约瑟夫问题

在古罗马时期,犹太人背叛了罗马人,落到困境,约瑟夫和同行的一共39个犹太人只能够自杀殉国,但是犹太教义规定不能自杀,因此只能够让别人将自己杀害。他们所有39个人坐成一圈,报数1—7,报到7则由身旁的人将自己杀死。结果约瑟夫灵机一动,给自己安排了一个位置,最后活了下来,那么约瑟夫给自己安排的是哪一个位置呢?在这个题目当中,我们如果使用队列,不仅可以处理任意人数坐成一圈,还可以将报数的值任...

2020-05-08 15:39:00

数据结构和算法(Python版):利用栈(Stack)实现括号的匹配问题

在平时写程序当中,我们会经常遇到程序当中括号的匹配问题,也就是在程序当中左括号的数量和右括号的数量必须相等。如果不相等的话则程序必然会报错。Hint:在读取程序的时候,读取的结果肯定是左边的全是左括号,右边的全是右括号,也就是一定是“(((( )))))”或者“((((((((((((( )))))))))))))))))”的形式,不可能是左右括号互相交互的形式,比如这种:“()()()...

2020-05-08 13:34:00

数据结构与算法:队列(Queue)的实现

在数据结构当中,有一种结构叫做队列。队列和栈都是一个类似于列表的东西,唯一不同的地方则是“先进先出”。队列就像我们在食堂排队吃饭一样,先排队的同学最先打到饭,下面是我画的队列的图片:从这种图当中我们可以看到队列就如同一个吸管一样,最先从吸管左边进入的数字1,同时也最先吸管的最右边出来。是否十分容易理解呢?现在我们使用Python来实现这个数据结构:class Queue():...

2020-05-08 10:50:00

数据结构与算法:栈(Stack)的实现

栈在程序设计当中是一个十分常见的数据结构,它就相当于一个瓶子,可以往里面装入各种元素,最先装进这个瓶子里的元素,要把后装进这个瓶子里的全部元素拿出来完之后才能够把他给拿出来。假设这个瓶子在桌上平放,左边是瓶底,右边是瓶口,那么我们可以作出下图:可以看到瓶子里一共被我放进了5个元素,分别是1,2,3,4,5。那么最先放进去的元素则是1,紧接着我放入了2,3,4,5.这很容易理解对吧...

2020-05-08 10:15:00

大一上,半期总结

前半期总的来说是一个适应大学生活的过程,适应学校的英语环境,教学模式,教育系统等等,现在我基本上熟悉了这些东西,开始我顺畅的大学生活。前半学期总的来说平时周一到周五都认真学习,预习复习兼顾。周末则看看计算机视觉领域所要求的的复变函数,概率论,以及以后找工作打比赛需要用到的重要知识——数据结构。这些都在B站上有很丰富的视频教程。一.人工智能理论的学习在人工智能的理论方面(在我们学校的...

2020-04-21 16:11:00

keras与卷积神经网络(CNN)实现识别minist手写数字

在本篇博文当中,笔者采用了卷积神经网络来对手写数字进行识别,采用的神经网络的结构是:输入图片——卷积层——池化层——卷积层——池化层——卷积层——池化层——Flatten层——全连接层(64个神经元)——全连接层(500个神经元)——softmax函数,最后得到分类的结果。Flatten层用于将池化之后的多个二维数组展开成一维数组,再灌入全连接层的神经元当中。首先导包:import...

2020-04-14 09:23:00

Pytorch自动求解梯度

要理解Pytorch求解梯度,首先需要理解Pytorch当中的计算图的概念,在计算图当中每一个Variable都代表的一个节点,每一个节点就可以代表一个神经元,我们只有将变量放入节点当中才可以对节点当中的变量求解梯度,假设我们有一个矩阵:1., 2., 3.4., 5., 6.我们将这个矩阵(二维张量)首先在Pytorch当中初始化,并且将其放入计算图当中的节点当中,在Pyto...

2020-04-11 11:58:00

Kaggle竞赛入门(四):随机森林算法的Python实现

首先导入数据,将数据分为训练集和测试集:import pandas as pd # Load datamelbourne_file_path = '../input/melbourne-housing-snapshot/melb_data.csv'melbourne_data = pd.read_csv(melbourne_file_path) # Filter ro...

2020-04-05 15:59:00

Kaggle竞赛入门(三):用Python处理过拟合和欠拟合,得到最佳模型

本文翻译自kaggle learn,也就是kaggle官方最快入门kaggle竞赛的教程,强调python编程实践和数学思想(而没有涉及数学细节),笔者在不影响算法和程序理解的基础上删除了一些不必要的废话,毕竟英文有的时候比较啰嗦。一.什么是过拟合和欠拟合?过拟合的含义就是当前模型十分符合训练集,十分精确,用这个模型去预测目前的训练集残差非常小,也可以说真实值减去预测值的大小的平均值...

2020-04-05 15:44:00

Kaggle竞赛入门(二):如何验证机器学习模型

本文翻译自kaggle learn,也就是kaggle官方最快入门kaggle竞赛的教程,强调python编程实践和数学思想(而没有涉及数学细节),笔者在不影响算法和程序理解的基础上删除了一些不必要的废话,英文有的时候比较啰嗦。一.什么是模型验证模型验证在机器学习当中非常重要,因为有的时候拟合出来的模型误差非常大而自己却不知道,就会造成很大的失误。在kaggle竞赛入门(二)当中,我...

2020-04-05 11:25:00

Kaggle竞赛入门(一):决策树算法的Python实现

本文翻译自kaggle learn,也就是kaggle官方最快入门kaggle竞赛的教程,强调python编程实践和数学思想(而没有涉及数学细节),笔者在不影响算法和程序理解的基础上删除了一些不必要的废话,毕竟英文有的时候比较啰嗦。一.决策树算法基本原理背景:假设你的哥哥是一个投资房地产的大佬,投资地产赚了很多钱,你的哥哥准备和你合作,因为你拥有机器学习的知识可以帮助他预测房价。你去...

2020-04-03 18:42:00

R语言入门:dnorm(),pnorm(),qnorm(),和rnorm()函数的使用

dnorm():输入的是x轴上的数值,输出的是该点的概率密度pnorm():输入的是x的z-score,输出的是面积,不带参数输出的是该点左边的面积,如果后面带lower.tail=F的参数,输出的是该点右边的面积。因为Lowertial表示的是左边,uppertail表示的是右边qnorm():输入的是分位数,区间为0—1,输出的是z-scorernorm():输入的是数值的个...

2020-04-01 20:12:00

Python strip()方法,split()方法和replace()的区别(易混淆)

Python当中的strip方法用于删除字符串结尾和开头的规定字符,假设是换行符“\n”,则都可以将其删除,并且他它返回的是字符串。而split()方法则是用于分割单词,字符串等作用,里面的第一个参数用于接收遇到什么进行分割,第二个参数用于接收分割的次数(默认为分割到无法分割为止,一般不写第二个参数),且最后返回的是列表不是字符串!replace方法也可以接收另个参数,这两个参数基本...

2020-03-31 15:50:00

查看更多

勋章 我的勋章
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。