机器学习-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‘],
    [‘2‘, ‘2‘, ‘2‘],
    [‘6‘, ‘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等相关内容。革命已经完成了一小步,同志们仍需努力才是啊。。。哈哈

原文地址:https://www.cnblogs.com/tangxiaobo199181/p/12025022.html

时间: 2024-10-12 09:53:57

机器学习-Python 01的相关文章

机器学习---python环境搭建

一 安装python2.7 去https://www.python.org/downloads/ 下载,然后点击安装,记得记住你的安装路径,然后去设置环境变量,这些自行百度一下就好了. 由于2.7没有pip ,所以最好装下.这是下载地址 https://pypi.python.org/pypi/pip#downloads.下载好之后点击开始,搜索 CMD .输入 python setup.py install 你在cmd里面输入pip会显示这个,这表示pip也没有设置环境变量,你只要去你pyth

机器学习Python包

随着机器学习的逐日升温,各种相关开源包也是层出不群,面对如此多种类的工具包,该如何选择,有的甚至还知之甚少或者不知呢,本文简单汇总了一下当下使用比较多的Python版本机器学习工具包,供大家参看,还很不全不详尽,会持续更新,也欢迎大家补充,多谢多谢!~~~ scikit-learn: 基于python的机器学习模块,基于BSD开源许可证.这个项目最早由DavidCournapeau 在2007 年发起的,目前也是由社区自愿者进行维护.基本功能主要被分为六个部分,分类,回归,聚类,数据降维,模型选

机器学习Python实现 SVD 分解

这篇文章主要是结合机器学习实战将推荐算法和SVD进行相应的结合 任何一个矩阵都可以分解为SVD的形式 其实SVD意义就是利用特征空间的转换进行数据的映射,后面将专门介绍SVD的基础概念,先给出python,这里先给出一个简单的矩阵,表示用户和物品之间的关系 这里我自己有个疑惑? 对这样一个DATA = U(Z)Vt 这里的U和V真正的几何含义  :  书上的含义是U将物品映射到了新的特征空间, V的转置  将 用户映射到了新的特征空间 下面是代码实现,同时SVD还可以用于降维,降维的操作就是通过

机器学习 python实例完成—决策树

决策树学习是应用最广泛的归纳推理算法之一,是一种逼近离散值目标函数的方法,在这种方法中学习到的函数被表示为一棵决策树.决策树可以使用不熟悉的数据集合,并从中提取出一系列规则,机器学习算法最终将使用这些从数据集中创造的规则.决策树的优点为:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据.缺点为:可能产生过度匹配的问题.决策树适于处理离散型和连续型的数据. 在决策树中最重要的就是如何选取用于划分的特征 在算法中一般选用ID3,D3算法的核心问题是选取在树的每个节点要测

推荐5个国内外评价超高的机器学习Python 库,实用!

前言 机器学习令人无比神往,但从事这个工作的人可能并不这么想. 机器学习的工作内容往往复杂枯燥又困难--通过大量重复工作进行提升必不可少: 汇总工作流及传输渠道.设置数据源以及在内部部署和云部署的资源之间来回分流. 所以使用工具提升你的工作效率实在很关键,而且像这样的工具越多越好. 好在你学的是Python,作为一门威力巨大的工具语言,Python可以给你提供足够的辅助工具,让你在大数据和机器学习项目中游刃有余. 唯一的问题在于Python海量的资源库让患有选择困难症的你难以取舍,因此糖豆贴心的

机器学习 - Python 02

好了,咱们接着上一节的内容,继续学习机器学习中的Python语法部分.这一节算是Python语法的最后一节了.也就是说如果真的看懂了这两节的内容,理论上说就机器学习的领域或者方向,语言已经不是问题了.同时也意味着马上真正的进入机器学习的核心部分了.好了,那咱们接下来正式开始咱们的学习啦. Tuples Tuples是Python中的一种新的形式的数据collection(至少相对于C++, objective-C,Java是新的.其他的我就不敢肯定了,免得被打脸,哈哈).其实她和List几乎是一

【华为云技术分享】机器学习(01)——机器学习简介

最近在研究机器学习,随手将学习的过程记录下来,方面自己的学习与回顾 1. 机器学习是什么? 机器学习(Machine Learning,ML)是专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能的一门科学技术. 它使用计算机技术,应用微积分.概率论.统计学.逼近论.凸分析.算法等多种不同的理论与学科,针对分析目标建立有针对性的数据模型,通过对过往历史数据的学习(分类.回归.聚类等),完成基本算法模型,并能通过后续持续的学习(数据输入),

python 01

注意Python 是大小写敏感的,即print 与Print 不一样 推荐编辑器 vim & sublime 如何运行 #!/usr/bin/python#Filename: helloworld.py Python 至少应当有第一行那样的特殊形式的注释.它被称作组织行—— 源文件的头两个字符是#! ,后面跟着一个程序.这行告诉你的Linux/Unix 系统当你执行你的程序的时候,它应该运行哪个解释器 如果你不知道Python 的位置该怎么办呢?于是,可以用在Linux/Unix 上特殊的env

机器学习-Python中训练模型的保存和再使用

在做模型训练的时候,尤其是在训练集上做交叉验证,通常想要将模型保存下来,然后放到独立的测试集上测试,下面介绍的是Python中训练模型的保存和再使用. scikit-learn已经有了模型持久化的操作,导入joblib即可 from sklearn.externals import joblib 模型保存 >>> os.chdir("workspace/model_save") >>> from sklearn import svm >>