第一章 | 使用python机器学习

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.51.01.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

原文发布于微信公众号 - 人工智能LeadAI(atleadai)

原文发表时间:2017-12-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CVPy

利用 Python 优雅地可视化数据

最近看《机器学习系统设计》的前两章,学到了一些用Matplotlib进行数据可视化的方法。在这里整理一下。

6950
来自专栏懒人开发

(1)James Stewart Calculus 5th Edition:Functions and Models

823

与机器学习算法有关的数据结构

可能你对经常使用的统计分类包中的功能不满足你的需求而感到不爽,或者你已经有了一个新的数据处理方法。所以,你决定改动现有封装好的算法,开始编写你自己的机器学习方法...

2297
来自专栏calmound

HDU 1536 S-Nim

师时隔几个月后,在看博弈NIM终于懂了,做出了第一道根据所有堆的异或和的题 题意:在一个Si容器中,输入可以行走的步数,然后在下面T组测试数据中,输入堆的情况 ...

3436
来自专栏技术翻译

与机器学习算法相关的数据结构

我不认为机器学习中使用的数据结构与在软件开发的其他领域中使用的数据结构有很大的不同。然而,由于许多问题的规模和难度,掌握基本知识是必不可少的。

923
来自专栏腾讯技术工程官方号的专栏

后台开发中的时空转换艺术

作者介绍:augustzhang,安全平台部基础架构组员工,先后从事密保、验证码等后台研发工作,现在主要负责安全平台部大数据平台的研发工作,致力于研究每秒GB级...

1957
来自专栏小红豆的数据分析

小蛇学python(17)时间序列的数据处理

不管是在金融学、经济学的社会学科领域,还是生态学、系统神经的自然学科领域,时间序列数据都是一种重要的结构化数据形式。

885
来自专栏灯塔大数据

每周学点大数据 | No.48 计算子图同构

No.48期 计算子图同构 Mr. 王:我们再来看一个例子——计算子图同构。这个问题给定(节点有标签)数据图G和查询图P,找到G 中和P 同构的子图。这是一个...

2858
来自专栏King_3的技术专栏

leetcode-48-旋转图像

你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。

673
来自专栏机器学习原理

Markdown几个常用的技巧标题一级标题列表引用表格粗体 斜体代码网址图片

前言: 写文章的时候就那几个常用的,可记性不行了,老是记不住,把它总结一下,也不用重新搜索了。 标题 这样写 # 一级标题 ## 二级标题 结果 一级标...

32313

扫描关注云+社区