机器学习工具:Python 和 Numpy入门
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实现的科学计算包。包括:
- 一个强大的N维数组对象Array;
- 比较成熟的(广播)函数库;
- 用于整合C/C++和Fortran代码的工具包;
- 实用的线性代数、傅里叶变换和随机数生成函数。
- 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 实战,英语沙龙,定期邀请专家发推。期待您的到来!
- Ibatisnet Quick Start
- 常见的3种Hive参数配置方法
- 6杂域名超16万元结拍
- GridView控件使用经验
- WordPress登陆文件wp-login.php添加相关参数,安全有保障
- WordPress在RSS Feed 中输出自定义特色图像(缩略图)
- 单拼域名can.com以高达99.2万元成交!
- CI学习 CCNET Config 第一天
- IBatisNet基础组件
- 学习altas笔记[客户端JS和Altas环境初始化关系和DataTable返回数据的客户端处理]
- 在Windows 8 Hyper-V下的安装CentOS 6和SSH配置
- WordPress RSS Feed 优化/设置技巧六则
- SourceTree 基本介绍
- 学习Altas 笔记[JS简单调用服务端方法]
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 猿蜕变10——一文学会ORM的正确打开姿势
- 猿蜕变11——一文掌握mybatis全局玩儿法
- 猿蜕变12——一文搞定mybatis花式玩法
- 猿蜕变13——一文搞懂mybatis规范和标签
- 猿蜕变14——一文搞懂AOP的套路
- 猿蜕变15——一文搞懂Spring AOP的正确姿势
- 猿蜕变16——一文搞懂Spring事务花式玩法
- 猿蜕变17——一文掌握SSM框架搭建姿势
- 猿蜕变18——一文掌控SSM玩耍方式
- 猿蜕变19——一文掌握代码自动生成
- 基于Java的俄罗斯方块游戏的设计与实现
- Docker中部署RabbitMQ并使用Python3.x操作全书(Python操作RabbitMQ看这一篇就够了)
- 【CPP】模板类线性表
- leetcode 剑指 Offer 32 - II. 从上到下打印二叉树 II
- Matlab系列之程序优化