机器学习-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 ...
随机推荐
- 『题解』Codeforces1142A The Beatles
更好的阅读体验 Portal Portal1: Codeforces Portal2: Luogu Description Recently a Golden Circle of Beetlovers ...
- ios jquery css('left')无法读取属性解决的方法
ios jquery css('left')无法读取属性解决的方法 <pre>$(this).position().left因为display:none状态下是读取不了 $(this).o ...
- iOS--通过runtime完成归档,反归档
通过runtime,不管模型有多少属性,通过几句代码就能完成. 假设person类有N多个属性而是(这里随便写3个) .h #import <Foundation/Foundation.h> ...
- MySQL InnoDB 实现高并发原理
MySQL 原理篇 MySQL 索引机制 MySQL 体系结构及存储引擎 MySQL 语句执行过程详解 MySQL 执行计划详解 MySQL InnoDB 缓冲池 MySQL InnoDB 事务 My ...
- Salesforce学习之路(十一)Aura组件属性<aura:attribute />
1. <aura:attribute />语法 Aura组件属性类似与Apex中类的成员变量(或者说Java中类的成员变量).他们是组件在特定的实例上设置的类型化字段,可以使用表达式语法从 ...
- Cef 因系统时间不正常,导致页面访问空白问题
当我们的系统时间不正常,比如设置一个日期-1999年9月9日,会引发证书问题. 系统时间不正常-IE有概率能访问 触发NavigateError事件,异常代码INET_E_INVALID_CERTIF ...
- jenkins手把手教你从入门到放弃03-安装Jenkins时web界面出现该jenkins实例似乎已离线
简介 很久没有安装jenkins了,因为之前用的的服务器一直正常使用,令人郁闷的是,之前用jenkins一直没出过这个问题. 令人更郁闷的是,我尝试了好多个历史版本和最新版本,甚至从之前的服务器把je ...
- nyoj 773-开方数 (pow)
773-开方数 内存限制:64MB 时间限制:1000ms 特判: No 通过数:3 提交数:8 难度:3 题目描述: 现在给你两个数 n 和 p ,让你求出 p 的开 n 次方. 输入描述: 每组数 ...
- windows:查看电脑开放的端口
netstat -ano netstat -ano | findstr '445' 查看445端口是否被使用 根据端口找到占用程序的PID,再用tasklist|findstr "2720& ...
- bootstrap中图片响应式
主要解决的是在轮播图中图片响应式的问题 目的 各种终端都需要正常显示图片 移动端应该使用更小(体积)的图片 实现方式 给标签添加两个data-属性(如:data-img-sm="小图路径&q ...