在numpy包中我们可以用数组来表示向量,矩阵和高阶数据结构

首先导入numpy包:

from numpy import*

初始化numpy数组有多种方式,比如说

1.python列表或元祖

2.使用arrange,linspace函数

3.从文件中读取数据

例:列表生成numpy数组:

v=array([1,2,3,4])

M=array([[1,2],[3,4]])

v和M对象都是numpy模块提供的ndarray类型

v,M区别在于他们的维度不同

可以通过ndarray.shape获得他们的维度

ndarray.size获得他们的元素数量

v.T将1*n的数组转化成n*1的数组

例如:M.shape   M.size

也可以用shape(M)和size(M)

那么为什么不使用list呢?

可以显示的定义元素类型通过在创建数组时使用dtype关键字

使用数组生成函数

x=arange(0,10,1) 0到10间距1

linspace(0,10,25) 0到10一共25个数据

x,y=mgrid[0:5,0:5]

生成随机数组:

from numpy import random

random.rand(5,5)生成5*5矩阵,随机值在0到1之间

random.randn(5,5)随机值

zeros((3,3))  3*3的0矩阵

ones((3,3)) 3*3都是1的矩阵

文件I/O创建数组:

csv是一种常用的数据格式化文件类型,使用numpy.genfromtxt函数读取

使用numpy.savetxt可以将数组存储到csv文件中

M=random.rand(3,3)

savetxt("random-maxtrix.csv",M)

nnmpy原生文件类型:

用numpy.save和numpy.load保存和读取

save("Numpy.npy",M)

load("Numpy.npy")

操作数组:

使用方括号:

M[1]

M[1,1]

如果是n维数组,检索时省略一个索引值会返回一整行

M[1]

使用:能达到同样效果。

M[1,:]一行   M[:,1]一列

同样可以使用索引值进行赋值

A[1:3]会返回第1,2号元素---------索引这块其实和list差不多。

负值索引从数组尾部开始计算。M[-1]为数组倒数第一个

索引切片在二维数组里也是一样的。

numpy函数

where函数能将索引掩码转换成索引位置

diag函数提取出数组对角线

take函数与高级索引用法相似

choose选取多个数组的部分组成新的数组

我们对矩阵间进行加减乘除时,默认行为是逐项乘的

使用dot函数进行矩阵与矩阵,向量的乘法

将数组对象映射到matrix类型

M=matrix(A)

数组,矩阵的变换

.T=transpose

C=matrix([1j,2j],[3j,4j])

共轭:

conjugate(C)

real与img能分别得到复数的实部和虚部

real(C)

image(C)

angle与abs可以分别得到幅角与绝对值

共轭转置C.H

矩阵计算

求逆:inv(C)=C.I

行列式:linalg.det(C)

数据处理:

mean(data[:,3])求第四列平均值

标准差与方差:

std(data[:,3]),var(data[:,3])

最大值与最小值

data[:,3].min() data[:,3].max()

总和,总乘积与总对角线和:

d=arange(0,10)

sum(d)

prod(d)总乘积

cumsum(d)对每一项进行阶乘

trace(A) #same as:diag(A).sum()

对高维数组进行操作

m=rand(3,3)

m.max()

m.min()

m.max(axis=0) #max in each colomn

m.max(axis=1) #max in each row

改变形状及大小

A=array(...)

n,m=A.shape() #n,m为A的行列数

B=A.reshape(1,n*m)

B[0,0:5]=5 #B的第一行0到5全赋值为5

flatten函数创造高阶数组的向量版本,但是会对数据进行一份拷贝

B=A.flatten();

增加一个新维度

v=array([1,2,3])

v[:,newaxis] #将v变成3*1的矩阵

v[newaxis,:] #将v变成1*3的矩阵

叠加与重复数组

title与repeat

A=array([1,2],[3,4])

浅拷贝与深拷贝

为了获得高性能,python中赋值往往不拷贝底层对象,成为浅拷贝

如将A赋值给B,改变B的同时A也会被改变。

使用copy函数进行深拷贝

B=copy(A)

遍历数组元素

可以使用for遍历数组元素

for element in v:

print element

M=array([[1,2],[3,4]])

for row in M:

print("row",row)

for element in row:

print element

可以使用enumerate函数同时获取元素与对应序号

矢量化函数

标量函数不能处理矢量array 所以需要使用vectorize函数将标量函数变为矢量函数

python numpy包的更多相关文章

  1. Python Numpy包安装

    1,下载python 下载地址: https://www.python.org/downloads/windows/ 2,配置python环境变量 在电脑的系统属性的系统变量path中添加python ...

  2. python之numpy包知识要点总结

    一.简介 numpy主要是用来存储和处理大型矩阵,提供了一种存储单一数据类型的多维数组对象------ndarray.还提供了多种运算函数,能够完成数据计算和统计分析,是数据分析的重要工具包. 二.数 ...

  3. python机器学习包 Windows下 pip安装 scikit-learn numpy scipy

    1.到PIP的目录中C:\Python34\Scripts;2. 2.1  pip安装numpy pip install numpy 2.2  pip安装sklearn pip install -U ...

  4. 机器学习常用Python扩展包

    在Ubuntu下安装Python模块通常有3种方法:1)使用apt-get:2)使用pip命令(推荐);3)easy_instal 可安装方法参考:[转]linux和windows下安装python集 ...

  5. 简易安装python统计包

    PythonCharm简易安装python统计包及 本文介绍使用pythonCharm IDE 来安装Python统计包或一些packages的简单过程,基本无任何技术难度,顺便提一提笔者在安装过程中 ...

  6. Python的包管理

    0.Python的包管理 在刚开始学习Python的时候比较头疼各种包的管理,后来搜到一些Python的包管理工具,比如setuptools, easy_install, pip, distribut ...

  7. Python机器学习包

    常用Python机器学习包 Numpy:用于科学计算的包 Pandas:提供高性能,易于使用的数据结构和数据分析工具 Scipy:用于数学,科学工程的软件 StatsModels:用于探索数据.估计统 ...

  8. win7的python3.5安装numpy包

    1.你需要先确保已经安装了pip(因为我是我们需要用pip安装numpy包),我在cmd里面输入pip能显示pip的有关信息,所以我已经安装了pip了(其实是python3.x自带了pip) 如果没有 ...

  9. python第三方包的windows安装文件exe格式

    今天弄了一上午的python-ldap,发现要么安装vc,要么用其他比较麻烦的方法,都比较麻烦.幸好找到这个地址: http://www.lfd.uci.edu/~gohlke/pythonlibs/ ...

随机推荐

  1. RUDP之三 —— Virtual Connection over UDP

    原文链接 原文:http://gafferongames.com/networking-for-game-programmers/virtual-connection-over-udp/ Introd ...

  2. StringTemplate初步使用

    例子1: private static void test_1(String[] args) throws Exception { ST hello = new ST("Hello, < ...

  3. 启动mysql服务 报1067 错误

    启动mysql 报1067 错误         一般报1067错误,先看一下data/my.ini配置文件 中的路径 datadir ,log-bin ,log-error 报1067错误原因 多种 ...

  4. ZeroMQ接口函数之 :zmq_msg_set - 设置消息的性质

    ZeroMQ 官方地址 :http://api.zeromq.org/4-1:zmq_msg_set zmq_msg_set(3)  ØMQ Manual - ØMQ/3.2.5 Name zmq_m ...

  5. dede判断当前文章

    <li><a href="/info/info3.html"  class=s  >企业文化 </a></li><li> ...

  6. USACO翻译:USACO 2014 JAN三题(2)

    USACO 2014 JAN 一.题目概览 中文题目名称 队伍平衡 滑雪录像 滑雪场建设 英文题目名称 bteams recording skicourse 可执行文件名 bteams recordi ...

  7. Windows2003远程桌面单会话登录

    在使用远程桌面连接到Windows2003的时候默认设置是同一用户可以进行多会话登录. (在winxp.win7及以后版本的windows中已经变成单会话登录.) 同用户多会话登录在管理上带来诸多麻烦 ...

  8. array题目合集

    414. Third Maximum Number 给一个非空的整数数组,找到这个数组中第三大的值,如果不存在,那么返回最大的值.要求时间复杂度为o(n) 例如: Example 1: Input: ...

  9. [转]10个有关RESTful API良好设计的最佳实践

    Web API已经在最近几年变成重要的话题,一个干净的API设计对于后端系统是非常重要的. 通常我们为Web API使用RESTful设计,REST概念分离了API结构和逻辑资源,通过Http方法GE ...

  10. angular 数据绑定

    1.ng-band 使用在index.html页面使用,该页面不要直接使用双花括号,否则网络延迟的时候页面会显示双花括号,由于通常只在index.html里导入angular.js,所以在其他模板页面 ...