Python的两个基础包numpy和Matplotlib示例详解_第1页
Python的两个基础包numpy和Matplotlib示例详解_第2页
Python的两个基础包numpy和Matplotlib示例详解_第3页
Python的两个基础包numpy和Matplotlib示例详解_第4页
Python的两个基础包numpy和Matplotlib示例详解_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Python的两个基础包numpy和Matplotlib示例详解Python的科学计算包-Numpynumpy(NumericalPythonextensions)是一个第三方的Python包,用于科学计算。这个库的前身是1995年就开始开发的一个用于数组运算的库。经过了长时间的发展,基本上成了绝大部分Python科学计算的基础包,当然也包括所有提供Python接口的深度学习框架。numpy在Linux下的安装已经在5.1.2中作为例子讲过,Windows下也可以通过pip,或者到下面网址下载:

ObtainingNumPy&SciPylibraries5.3.1基本类型(array)array,也就是数组,是numpy中最基础的数据结构,最关键的属性是维度和元素类型,在numpy中,可以非常方便地创建各种不同类型的多维数组,并且执行一些基本基本操作,来看例子:

importnumpyasnpa=[1,2,3,4]#

b=np.array(a)#array([1,2,3,4])

type(b)#b.shape#(4,)

b.argmax()#3

b.max()#4

b.mean()#2.5c=[[1,2],[3,4]]#二维列表

d=np.array(c)#二维numpy数组

d.shape#(2,2)

d.size#4

d.max(axis=0)#找维度0,也就是最后一个维度上的最大值,array([3,4])

d.max(axis=1)#找维度1,也就是倒数第二个维度上的最大值,array([2,4])

d.mean(axis=0)#找维度0,也就是第一个维度上的均值,array([2.,3.])

d.flatten()#展开一个numpy数组为1维数组,array([1,2,3,4])

np.ravel(c)#展开一个可以解析的结构为1维数组,array([1,2,3,4])#3x3的浮点型2维数组,并且初始化所有元素值为1

e=np.ones((3,3),dtype=np.float)#创建一个一维数组,元素值是把3重复4次,array([3,3,3,3])

f=np.repeat(3,4)#2x2x3的无符号8位整型3维数组,并且初始化所有元素值为0

g=np.zeros((2,2,3),dtype=np.uint8)

g.shape#(2,2,3)

h=g.astype(np.float)#用另一种类型表示l=np.arange(10)#类似range,array([0,1,2,3,4,5,6,7,8,9])

m=np.linspace(0,6,5)#等差数列,0到6之间5个取值,array([0.,1.5,3.,4.5,6.])p=np.array(

[[1,2,3,4],

[5,6,7,8]]

)np.save('p.npy',p)#保存到文件

q=np.load('p.npy')#从文件读取注意到在导入numpy的时候,我们将np作为numpy的别名。这是一种习惯性的用法,后面的章节中我们也默认这么使用。作为一种多维数组结构,array的数组相关操作是非常丰富的:

importnumpyasnp'''

array([[[0,1,2,3],

[4,5,6,7],

[8,9,10,11]],[[12,13,14,15],

[16,17,18,19],

[20,21,22,23]]])

'''

a=np.arange(24).reshape((2,3,4))

b=a[1][1][1]#17'''

array([[8,9,10,11],

[20,21,22,23]])

'''

c=a[:,2,:]'''用:表示当前维度上所有下标

array([[1,5,9],

[13,17,21]])

'''

d=a[:,:,1]'''用...表示没有明确指出的维度

array([[1,5,9],

[13,17,21]])

'''

e=a[...,1]'''

array([[[5,6],

[9,10]],[[17,18],

[21,22]]])

'''

f=a[:,1:,1:-1]'''

平均分成3份

[array([0,1,2]),array([3,4,5]),array([6,7,8])]

'''

g=np.split(np.arange(9),3)'''

按照下标位置进行划分

[array([0,1]),array([2,3,4,5]),array([6,7,8])]

'''

h=np.split(np.arange(9),[2,-3])l0=np.arange(6).reshape((2,3))

l1=np.arange(6,12).reshape((2,3))'''

vstack是指沿着纵轴拼接两个array,vertical

hstack是指沿着横轴拼接两个array,horizontal

更广义的拼接用concatenate实现,horizontal后的两句依次等效于vstack和hstack

stack不是拼接而是在输入array的基础上增加一个新的维度

'''

m=np.vstack((l0,l1))

p=np.hstack((l0,l1))

q=np.concatenate((l0,l1))

r=np.concatenate((l0,l1),axis=-1)

s=np.stack((l0,l1))'''

按指定轴进行转置

array([[[0,3],

[6,9]],[[1,4],

[7,10]],[[2,5],

[8,11]]])

'''

t=s.transpose((2,0,1))'''

默认转置将维度倒序,对于2维就是横纵轴互换

array([[0,4,8],

[1,5,9],

[2,6,10],

[3,7,11]])

'''

u=a[0].transpose()#或者u=a[0].T也是获得转置'''

逆时针旋转90度,第二个参数是旋转次数

array([[3,2,1,0],

[7,6,5,4],

[11,10,9,8]])

'''

v=np.rot90(u,3)'''

沿纵轴左右翻转

array([[8,4,0],

[9,5,1],

[10,6,2],

[11,7,3]])

'''

w=np.fliplr(u)'''

沿水平轴上下翻转

array([[3,7,11],

[2,6,10],

[1,5,9],

[0,4,8]])

'''

x=np.flipud(u)'''

按照一维顺序滚动位移

array([[11,0,4],

[8,1,5],

[9,2,6],

[10,3,7]])

'''

y=np.roll(u,1)'''

按照指定轴滚动位移

array([[8,0,4],

[9,1,5],

[10,2,6],

[11,3,7]])

'''

z=np.roll(u,1,axis=1)对于一维的array所有Python列表支持的下标相关的方法array也都支持,所以在此没有特别列出。既然叫numericalpython,基础数学运算也是强大的:

importnumpyasnp#绝对值,1

a=np.abs(-1)#sin函数,1.0

b=np.sin(np.pi/2)#tanh逆函数,0.50000107157840523

c=np.arctanh(0.462118)#e为底的指数函数,20.085536923187668

d=np.exp(3)#2的3次方,8

f=np.power(2,3)#点积,1*3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论