Python和numby学习笔记
来源:互联网 发布:java程序设计实验指导 编辑:程序博客网 时间:2024/05/03 20:00
NumPy学习报告
一:Numpy的个人理解和其在windows上的安装
个人理解numpy有点类似于C++中的STL,只不过STL更偏向于数据结构,而numpy偏向于计算。
目前我只在windows上安装了numpy,Python版本是2.7,我在网上下载了对应于Python2.7版本的numpy-1.7.0-win32-superpack-python2.7.exe。安装也比较傻瓜,一路直接next。
二:如何使用numpy以及numpy的array用法
在Python中,如果我们使用numpy的时候,我们需要导入numpy,可以使用imprt numpy,但是一般最好使用import numpy asnp。
定义array:
A=np.array([1,2,3,4],float)
Array函数有两个参数,第一个是一个list,第二个是array中元素的类型。
我们可以使用函数 type(A)来得到A的类型,返回应该是array。
多维的Array定义只需将array中的参数修改为多维的list。例子如下:
另外,我们还有其他定义array的方式:
主要是以下几个函数
l Arrange 顺序生成
l Zeros 生成的元素都是0
l Ones 生成的元素都是1
l Zeros_like 参数为一个array,生成的维度和参数的一样,只是数据为0
l Ones_like 同上,只是数据为1
此外我们需要记住以下几个针对array比较常用的函数和属性:
函数/属性
作用描述
Shape
returns a tuple with the size of each array dimension
A=np.array([[1,2],[3,4]],float)
A.shape : (2,2)
reshape
creates a new array and does not itself modify the original array
利用参数中的数据构造对应维数的array
transpose
create a new array with the final two axes switched
对于二维的array,相当于转置了一下。
concatenates
将两个或者多个array连接,该函数有两个参数,第一个为array构成的元组,第二个针对多维度的,选择哪一个连接。
三:Python slice
Slice这一部分,比较主要,也比较混淆。在看了http://stackoverflow.com/questions/509211/pythons-slice-notation这一部分之后比较清楚。我个人还是觉得这一部分应该清楚的了解,在使用的时候查查确保正确,没必要纠结于某一方面。以下是我在上述网址中剪切的图片,比较有学习价值。
四:numpy Broadcasting
Numpy中array基本运算如下:
上述的图片基本反映array正常的四则运算和指数运算。我们需要注意上式中是两个相同的array之间的运算或者是array和一个数值之间的运算。
如果两个array之间的维度不同,则broadcast,参考:http://docs.scipy.org/doc/numpy/user/basics.broadcasting.html。
其实我个人觉得有个例子能更好的反映broadcast(参考上述链接):
五:array的迭代和一些统计计算
我们先来总结array的迭代:
上图参考http://www.engr.ucsb.edu/~shell/che210d/numpy.pdf 这个链接,我们截个图。这个我觉得应该一目了然。
统计计算:
Array的和,积,平均值,方差和标准差。
对于多维计算,我们总结要先确定axis,从以下图片中,我们能够清楚看出结果:
六:向量和矩阵运算
个人觉得这一节才是numpy中的重点。先介绍几个概念:
点积(内积) 首先要明白向量的点积之后是个数值。矩阵的点积就是矩阵的乘法。在此我们需要清楚。
向量积(交叉积) 向量积结果是个向量。如下图:
点积:
向量积
其中的outer为:a的转置和b的点积。Inner就是点积,cross及交叉积就是向量积。
矩阵的行列式值从如下的例子就能看出:
其中linalg是numpy中的一个子模块。
矩阵的特征值和特征向量求解如下:
矩阵的逆:
奇异值分解:
- Python和numby学习笔记
- window+python3.6环境下安装numby和pip
- 【Python学习笔记】Python数据类型和变量
- 【python学习笔记】了解和安装python
- Python数据科学安装Numby,pandas,scipy,matpotlib等(IPython安装pandas)
- 安装Python和认识Python---Python学习笔记一
- Python:个人学习和练习笔记
- python学习笔记13--类和对象
- python学习笔记-字符串和编码
- python string,Unicode和Qstring学习笔记
- [Python]学习笔记之文件和异常
- python学习笔记(十) - 进程和线程
- Python学习笔记 类和对象
- Python学习笔记 - 数据类型和变量
- Python学习笔记 - 字符串和编码
- Python学习笔记 - list和tuple
- Python学习笔记 - dict和set
- Python学习笔记 - function调用和定义
- 多级listview的实现
- ubuntu12.04升级gcc和g++到4.7
- Notice: Undefined variable 的解决方法
- Oracle数据库的备份方法
- Jquery如何获取某个元素前(后)的文本内容
- Python和numby学习笔记
- java编写金额小写转大写
- 行为模式之命令模式
- android scroller类中 startScroll()方法滑动快而产生的卡住现象
- 语音识别和合成在不同机器人软件架构中的位置
- 栈与队列(网址集锦)
- Leetcode分类-链表
- Java源码学习-String类的构造方法String(char value[])
- SQL Server中Text和varchar(max) 区别