机器学习工具:Python 和 Numpy入门

2017-11-12 avuzati

戳上面的 蓝字 关注我们!

作者:alg-flody

编辑:Emily

0 写在前头

我们一般都是从C语言开始学起的,后来发现C语言不能满足我们快速开发的需求,因为它的API使用起来不很方便,还有就是有些功能亟待扩展,这时候我们很多人选择了C++或Java,C#,这些更高级的语言让我们开发软件时,使用起来更方便了。如今,随着人工智能时代的到来,Python迅速成为了机器学习,深度学习的必备语言,流行的机器学习库,sklearn,完全是基于Python开发的API,深度学习库tensorflow也是对Python的支持最好。

由此可见,随着时代的发展,各种语言不断迭代,顺应时代的需求。这样看来,作为开发者的我们除了要学习机器学习,深度学习的一些理论和算法的同时,还得去学各种语言,真的看起来很辛苦,有时候好不容易学会一门语言后,它已经又被新的语言迭代掉了。

实际上,当你深入了掌握一门语言后,再学起其他语言来就会相对更快,与那些从来没接触一门编程语言的来比起来。这是为什么呢?

原来,任何一门语言,本质上都是语言定义的内置类型和相关的API,及我们的扩展自己所需要的类型及定义的方法。

因此,我们只需要把握住两点就能很快入门这门语言:

  • 基本数据类型及封装的API

  • 库内定义通用API,如文件处理等

1  Python 入门

1.1  说说,Python最常用的基本数据类型包括

  • list

  • set

  • dictionary

1.2 内置类型封装的基本操作

再来看看这些类型上定义的最基本的操作,下面是list:

' 定义一个 list'
months=[]
' list 内添加一个元素 '
months.append( "January" )
' 切片访问 list 的除最后 10 个元素的所有 '
months[:- 10 ]

及其他...

下面是字典:

' 定义一个字典 '
mydict = {}
' 添加一个键值对 '
mydict[ "Tom" ] = 90
' 拿到所有键 '
mydict.keys()

及其他...

1.3 通用API

' list 内含的元素个数 '
len (months)

' 返回 1~10'
range ( 10 )
及其他...

2 Numpy 入门

NumPy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。

一个用python实现的科学计算包。包括:

  1. 一个强大的N维数组对象Array;

  2. 比较成熟的(广播)函数库;

  3. 用于整合C/C++和Fortran代码的工具包;

  4. 实用的线性代数、傅里叶变换和随机数生成函数。

  5. numpy和稀疏矩阵运算包scipy配合使用更加方便。 

Numpy中最基本的数据结构: ndarray ,下面看下它的基本操作:

'''
首先要导入numpy包
'''

import numpy as np
'''

'''
numpy.array是一个将python的list包装为ndarray的函数
'''

x = np.array([[ 1.0 , 2 ], [ 1 , 2 ]])
' 求转置 '
xt = x.transpose()

' 赋值通过矩阵的索引 '

xt[ 0 , 0 ] =1.0
' 求内积,注意dot操作是建立在某个实例矩阵上面的 '
x2 = xt.dot(x)

' 求逆矩阵需要导入另一个模块linalg '

import numpy.linalg as la

' 求逆矩阵

'

x2inv = la.inv(x2)


及其他...

交流思想,注重分析,看重过程,包含但不限于:经典算法,机器学习,深度学习,LeetCode 题解,Kaggle 实战,英语沙龙,定期邀请专家发推。期待您的到来!


用户评论
开源开发学习小组列表