机器学习-Python 01
机器学习中最常用最流行的语言工具现阶段应该是Python, 这篇文章主要介绍一些常用的Python语法知识。本篇博文适合那些有其他语言基础的程序员们,如果一点基础都没有,我建议先跳过。博主以前是做移动端开发的,所以本篇文章主要是为那些准备知识提升或者转行的程序员们准备的,可以让你们以最快的速度进入到Python的开发环境。
好了,首先在正式介绍Python的开发之前,大家都知道需要配置开发环境和IDE. 这里我介绍一下我常用的,叫做Anaconda, 大家可以自行下载,下载过后不用另外配置Python的环境了,因为她已经帮咱们配置好了。下载地址:https://www.anaconda.com/ , 下载过后,你以后每天都需要打开和操作的就是这个图片啦,至少所有DataScience和机器学习的工具这里基本都有。如下图

开发Python常用的编辑器是Spyder和Jupyter Notebook. 但是因为学校老师教的是Spyder, 这里以及以后的机器学习我都选择Spyder啦(懒懒懒)。至于在学习过程中,不断的需要下载相关库的话,就点击上图左上角的Environment,然后自己慢慢去搜,慢慢去找哈,这不是本博客的重点。好了,下面介绍Python的知识点啦。
1. 变量
和其他语言一个很明显的区别是,Python的变量是不需要预先定义类型的。这个很牛逼吧,你可能要问,那她是怎么分配内存空间的呢?这个。。。。。。。。。我就不说了(其实是不知道,哈哈哈哈),单这应该是Python动态分配内存的机制。
例如,咱们可以直接写 a = 10, 而不需要跟Java或者OC 中那样写 int a = 10. So cool, is it?
2. Operations
顾名思义,Python和任何其他语言一样,都有加减乘除,取模,取余数等等算数运算。直接看下面的example更加直观。
var01 = 10
var02 = 15.5
plus = var01+var02
minus = var01-var02
multiply = var01*var02
divid = var01/var02#这里直接给的就是浮点数的结果,而不像其他语言那样只取结果中的整数部分
mod = var01%var02
这里基本和其他的语言一样,只有一些细节不同,例如除法运算,Python直接返回的是浮点型的最终结果,这比其他语言要方便的多。
3. Swap(交换变量值)
大家在学习任何一种语言的时候,我拿我英俊潇洒的面容跟你们打赌,你们一定写过2个变量值交换的代码,而且你们交换值的思路都是定义一个中间变量,然后交换。(别问我怎么知道,我也是从这条路上面走过来的。。。。。。。)。我们以前的思路伪代码如下:temp = a;
a = b;
b = temp;
是不是又被我猜到了,娃哈哈哈哈哈哈哈哈。 但是!!!!!!!自从我们有了Python,我们就不需要这么麻烦了,直接一行代码搞定,看下面
a = 1
b = 2
a,b = b,a
上面第三行,直接交换a, b的值。我就问你服不服?????
4. 函数定义
学过任何一个语言的人都应该知道函数的重要性,咱直接上代码,看看一般函数的定义和格式,然后我在细细解释一些小细节哈。。。
def least_difference(a,b,c):
"""
Return the smallest difference between any two numbers among a,b,c
"""
diff1 = abs(a-b)
diff2 = abs(a-c)
diff3 = abs(b-c)
return min(diff1,diff2,diff3)
首先定义函数的格式是:
def function_name (args):
"""
函数注释区, 将函数注释放在这里。语法中虽然没有特别要求,但是是一个很好的习惯 """
function_body
这里需要记住一个小细节,Python中的indent(缩进)不能省略,否则编译器会报错。而在其他几乎所有的主流语言中都不存在这个问题的,只要是新的一行,管你缩进几个空格符呢。 第二点这里有个细节就是Python中函数的注释规则, 一般将这个函数的注释都写在上面的函数注释区间,为什么这么做呢???其实你不做也不影响代码运行,但是你的项目组长或者项目经理估计得找你谈谈了。哈哈。 其实写在这还有一个作用,就是在调用help(函数名)是,能将该这一块的注释返回并打印出来,这在写一些公用组件或者API是就显得尤为重要了。例如
help(least_difference)
调用上面一行代码后,回返回并打印下面这一句话
Return the smallest difference between any two numbers among a,b,c
是不是很酷,瞬间感觉自己能写API 了。
5. 条件表达(conditional expression)
Python中的条件表达,如if-else表达基本跟Java等主流语言是一致的,但是就三目运算符这一块有一点不一样. 在Python中三目运算符如下所示
outcome = True if grade > 60 else False #ternary operator
6. List
6.1 List 的创建
List几乎是我们日常中用的评率非常高的一种数据结构。Python中的list的牛逼之处在于,她可以将不同数据类型的元素装进同一个list。list的创建如下所示
numbers = [1,2,3,4]
planets = ['a','b','c','d']
mix = [1,'a',2,'b']#different data types
hands = [
['J', 'Q', 'K'],
['', '', ''],
['', 'A', 'K'] # (Comma after the last element is optional)
]
6.2 List的index
在Python中,list的index也是zero-index,意思就是从零开始。但是Python的不同之处就在于,她的index,TMD能够使负数,对!!!是负数,是不是感觉颠覆了以前对于List的认知。但是在Python中,index是负数代表的是从末尾元素开始index的。例如:-1代表最后一个元素的index,-2代表倒数第二个元素,以此类推。具体代码示例看下面
print(numbers[0])#result is 1
print(numbers[-1])#result is 4
print(numbers[-2])#result is 3
6.3 slicing
在Python中,无论是Python中的List数据结构,还是后面要学的numpy中的ndarray, slicing都是经常要用到的。 Slicing这个单词如果直译过来的意思就是切割(你也可以理解为切糕,哈哈哈),就是从一块大的切糕中切一小段给你。在Python的List中,slicing的意思是指在List中切出一段出来。这里的slicing的运用非常灵活,我列举了下面的几种方式。另外slicing取值范围也是包头不包尾的。
print(planets[:3])#from index-0(include) to index-3(exclude)
print(planets[1:])#from index-1(include) to the last element(include last element)
print(planets[0:3])
print(planets[-2:-1])#from the last second element(include) to the last element(exclude)
print(planets[-2:])#from the last second element(include) to the last element(include)
6.4 List常用的method(functions)
由于list是mutable的,是可以修改的,所以她的method非常灵活且都。这跟我们后面说的一个另外一种数据结构Tuples有很大的区别。常用list的method包括有append, pop,len,index等等,具体有无数种method,你们可以自行去查询API,下面列举了一些常用的方法供参考。
planets.append('e')#add a element and place it at the last position
len(planets)#return the length of the list
planets.pop()#return and remove the last element from the list
planets.index('c')#return the index of the element "c"
总结:以上是一些快速入门Python的第一部分,是最基础的部分,学习要求有其他开发语言的相关经验或者知识储备。上面这些最基础的部分有Python开发环境配置,变量,函数定义,List等。下一节继续扩展一下Python中循环,dictionary,Tuples等相关内容。革命已经完成了一小步,同志们仍需努力才是啊。。。哈哈
机器学习-Python 01的更多相关文章
- 机器学习---python环境搭建
一 安装python2.7 去https://www.python.org/downloads/ 下载,然后点击安装,记得记住你的安装路径,然后去设置环境变量,这些自行百度一下就好了. 由于2.7没有 ...
- 【原】Spark之机器学习(Python版)(二)——分类
写这个系列是因为最近公司在搞技术分享,学习Spark,我的任务是讲PySpark的应用,因为我主要用Python,结合Spark,就讲PySpark了.然而我在学习的过程中发现,PySpark很鸡肋( ...
- 机器学习python*(深度学习)核心技术实战
Python实战及机器学习(深度学习)技术 一,时间地点:2020年01月08日-11日 北京(机房上课,每人一台电脑进行实际案例操作,赠送 U盘拷贝资料及课件和软件)二.课程目标:1.python基 ...
- [Python]-pandas模块-机器学习Python入门《Python机器学习手册》-03-数据整理
<Python机器学习手册--从数据预处理到深度学习> 这本书类似于工具书或者字典,对于python具体代码的调用和使用场景写的很清楚,感觉虽然是工具书,但是对照着做一遍应该可以对机器学习 ...
- [Python]-sklearn模块-机器学习Python入门《Python机器学习手册》-02-加载数据:加载数据集
<Python机器学习手册--从数据预处理到深度学习> 这本书类似于工具书或者字典,对于python具体代码的调用和使用场景写的很清楚,感觉虽然是工具书,但是对照着做一遍应该可以对机器学习 ...
- 【原】Spark之机器学习(Python版)(一)——聚类
kmeans聚类相信大家都已经很熟悉了.在Python里我们用kmeans通常调用Sklearn包(当然自己写也很简单).那么在Spark里能不能也直接使用sklean包呢?目前来说直接使用有点困 ...
- 机器学习Python包
随着机器学习的逐日升温,各种相关开源包也是层出不群,面对如此多种类的工具包,该如何选择,有的甚至还知之甚少或者不知呢,本文简单汇总了一下当下使用比较多的Python版本机器学习工具包,供大家参看,还很 ...
- R︱mlr包帮你挑选最适合数据的机器学习模型(分类、回归)+机器学习python和R互查手册
一.R语言的mlr packages install.packages("mlr")之后就可以看到R里面有哪些机器学习算法.在哪个包里面. a<-listLearners() ...
- 机器学习 python库 介绍
开源机器学习库介绍 MLlib in Apache Spark:Spark下的分布式机器学习库.官网 scikit-learn:基于SciPy的机器学习模块.官网 LibRec:一个专注于推荐算法的j ...
随机推荐
- Spring Cloud gateway 六 Sentinel nacos存储动态刷新
微服务当前这么火爆的程度,如果不能学会一种微服务框架技术.怎么能升职加薪,增加简历的筹码?spring cloud 和 Dubbo 需要单独学习.说没有时间?没有精力?要学俩个框架?而Spring C ...
- insmod: can't insert 'btn_drv.ko': Operation not permitted
检测内核是否以及支持 要插入的驱动,若内核支持,则需要裁减掉内核支持的驱动才能安装上自己所写的驱动程序.
- 易初大数据 2019年11月14日 spss笔记 王庆超
“均匀分布”的随机数 需要打开本章的数据文件“sim.sav.”. 1.设置随机数种子 1选择[转换]--[随机数字生成器],勾选‘设置起点’,并在‘固定值’ 的下‘值’中输入一个用户给定的数值.该数 ...
- Redis实战--Jedis实现分布式锁
echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!!! 分布式 ...
- ASP.NET Core 1.0: Using Entity Framework Core 1.0 - Transaction
跟Entity Framework之前的版本不同,Class DbContext不再有AcceptAllChanges()方法. 使用Transaction需要使用DbContext中的Databas ...
- PHP实现日历签到,并实现累计积分功能
在网站开发过程中我们会经常用到签到功能来奖励用户积分,或者做一些其他活动.这次项目开发过程中做了日历签到,因为没有经验所有走了很多弯路,再次记录过程和步骤. 1.日历签到样式:使用的是calendar ...
- nyoj 18-The Triangle(动态规划)
18-The Triangle 内存限制:64MB 时间限制:1000ms Special Judge: No accepted:5 submit:5 题目描述: 7 3 8 8 1 0 2 7 4 ...
- 搭建Nginx正向代理服务
需求背景: 前段时间公司因为业务需求需要部署一个正向代理,需要内网服务通过正向代理访问到外网移动端厂商域名通道等效果,之前一直用nginx做四层或者七层的反向代理,正向代理还是第一次配置,配置的过程也 ...
- django_4:数据库1——django操作数据库
创建数据库记录(插入) 使用python3 manage.py shell(python3亲测好使) ipython3 manage.py shell(亲测不好使) 方式一. [root@centos ...
- tomcat-9.0.20缓存空间不足
问题2:启动时候报这样的警告:警告 [main] org.apache.catalina.webresources.Cache.getResource 无法将位于[/WEB-INF/classes/t ...