美文网首页AIml程序员
使用python机器学习(一)

使用python机器学习(一)

作者: jacksu在简书 | 来源:发表于2017-07-04 15:55 被阅读1879次

    python经常作为机器学习的首选,有一个统计,50%以上的机器学习开发者使用python。在学习机器学习之前需要熟悉以下几个python模块:

    • numpy
      Python没有提供数组,列表(List)可以完成数组,但不是真正的数组,当数据量增大时,它的速度很慢。所以Numpy扩展包提供了数组支持,同时很多高级扩展包依赖它。是以矩阵为基础的数学计算模块,纯数学。
    • SciPy
      SciPy是数学,科学和工程的开源软件。 它包括用于统计,优化,集成,线性代数,傅里叶变换,信号和图像处理,ODE解算器等的模块。SciPy库依赖于NumPy,提供方便快捷的N维数组操作。比方说做个傅立叶变换,这是纯数学的,用Numpy;做个滤波器,这属于信号处理模型了,在Scipy里找。
    • pandas
      Pandas提供了一套名为DataFrame的数据结构,比较契合统计分析中的表结构,并且提供了计算接口,可用Numpy或其它方式进行计算。
    • matplotlib & seaborn
      该包主要用于绘图和绘表,强大的数据可视化工具,做图库。

    现在我们开始熟悉numpy的常用操作函数:
    ** 一维数组 **

    #encoding=utf8
    import numpy as np
    
    # 定义一维数组
    a = np.array([2, 0, 1, 5, 8, 3])
    print u'原始数据:', a
    
    #输出最大、最小值及形状
    print u'最小值:', a.min()
    print u'最大值:', a.max()
    print u'形状', a.shape
    
    # 数据切片
    print u'切片操作:'
    # [:-2]后面两个两个值不取
    print a[:-2]
    #[-2:]表示后往前数两个数字,获取数字至结尾
    print a[-2:]
    #[:1]表示从头开始获取,获取1个数字
    print a[:1]
    
    # 排序
    print type(a)
    print a.dtype
    a.sort()
    print u'排序后:', a
    

    运行结果

    原始数据: [2 0 1 5 8 3]
    最小值: 0
    最大值: 8
    形状 (6,)
    切片操作:
    [2 0 1 5]
    [8 3]
    [2]
    <type 'numpy.ndarray'>
    int32
    排序后: [0 1 2 3 5 8]
    

    二维数组

    #二维数组操作
    
    
    c = np.array([[1, 2, 3, 4], [4, 5, 6, 7], [7, 8, 9, 10]])
    
    # 获取值
    print u'形状:', c.shape
    print u'获取值:', c[1][0]
    print u'获取某行:'
    print c[1][:]
    print u'获取某行并切片:'
    print c[0][:-1]
    print c[0][-1:]
    
    #获取具体某列值
    print u'获取第3列:'
    #np.newaxis增加一个新维度
    print c[:,np.newaxis, 2]
    
    
    #函数
    #sin
    print np.sin(np.pi/6)
    print np.sin(np.pi/2)
    print np.tan(np.pi/2)
    
    print np.arange(0,4)
    

    运行结果

    形状: (3, 4)
    获取值: 4
    获取某行:
    [4 5 6 7]
    获取某行并切片:
    [1 2 3]
    [4]
    获取第3列:
    [[3]
     [6]
     [9]]
    0.5
    1.0
    1.63312393532e+16
    [0 1 2 3]
    

    注意,axis在numpy中表示第n个索引一个数组,在多维数组中,每个axis有一个索引,比如a = np.array([[1,2],[3,4]]),a[1,0] # to indexa, we specific 1 at the first axis and 0 at the second axis.

    文中涉及源代码参见 github

    参考

    http://blog.csdn.net/eastmount/article/details/53144633

    相关文章

      网友评论

        本文标题:使用python机器学习(一)

        本文链接:https://www.haomeiwen.com/subject/ppyyqxtx.html