机器学习-Python 01

机器学习中最经常使用最流行的语言工具现阶段应该是Python, 这篇文章主要介绍一些经常使用的Python语法知识。本篇博文适合那些有其余语言基础的程序员们,若是一点基础都没有,我建议先跳过。博主之前是作移动端开发的,因此本篇文章主要是为那些准备知识提高或者转行的程序员们准备的,可让大家以最快的速度进入到Python的开发环境。python

好了,首先在正式介绍Python的开发以前,你们都知道须要配置开发环境和IDE. 这里我介绍一下我经常使用的,叫作Anaconda, 你们能够自行下载,下载事后不用另外配置Python的环境了,由于她已经帮我们配置好了。下载地址:https://www.anaconda.com/ , 下载事后,你之后天天都须要打开和操做的就是这个图片啦,至少全部DataScience和机器学习的工具这里基本都有。以下图程序员

 

开发Python经常使用的编辑器是Spyder和Jupyter Notebook. 可是由于学校老师教的是Spyder, 这里以及之后的机器学习我都选择Spyder啦(懒懒懒)。至于在学习过程当中,不断的须要下载相关库的话,就点击上图左上角的Environment,而后本身慢慢去搜,慢慢去找哈,这不是本博客的重点。好了,下面介绍Python的知识点啦。express

1. 变量数据结构

和其余语言一个很明显的区别是,Python的变量是不须要预先定义类型的。这个很牛逼吧,你可能要问,那她是怎么分配内存空间的呢?这个。。。。。。。。。我就不说了(实际上是不知道,哈哈哈哈),单这应该是Python动态分配内存的机制。app

例如,我们能够直接写 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等相关内容。革命已经完成了一小步,同志们仍需努力才是啊。。。哈哈

相关文章
相关标签/搜索