码迷,mamicode.com
首页 > 其他好文 > 详细

numpy简单入门学习

时间:2016-07-15 20:58:50      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:

为了快速的学习numpy,只要参阅了官网的快速入门教程进行学习,官网的网址:https://docs.scipy.org/doc/numpy-dev/user/quickstart.html。虽然和matlab的操作大同小异,但是还是需要很多明确的python的概念,比如序列,列表以及元组的概念,当然这也是python里面需要注意最多的基本的数据类型。现将学习的基本过程叙述如下:

numpy是通过python语言实现的用于科学研究中的计算。可以方便的进行代数计算、傅里叶计算等。这是Numpy学习的官方网站:http://www.numpy.org/。所以在进行numpy的学习之前,确保你有一定的python基础,能够理解序列、列表以及元组的概念。

  • numpy的基本概念 === array

在numpy的主要对象是array,这里需要与python中的序列、列表以及元组区分一下,在python中,列表等元素的数据类型是可以不一样的,但是在array中的数据类型是一致的。array具有多维性。array的元素可以通过索引的方式进行访问。在Numpy中,array的维度称为axes。axes的大小称为rank。列如array[1,2,1],它的维度为1,rank的值为1,因为只有一维。例如以下array,rank的大小为2,第一维度或者axes的的长度为2,第二维度或者axes的长度为3,他们的索引分别为0和1.

技术分享

array的重要属性如下:(注释:在numpy,array类声明为ndarray,但是为我们所熟知的这是ndarray的别名,array)

  • ndarray.ndims

axes的大小,在python中,被定义为rank

  • ndarray.shape

array的维度表示,它是一个元组,通过整数类型表征的,列如对于一个矩阵而言,有n行m列,那么它的shape则是(n,m)。

  • ndarray.size

array元素的个数,它等于shape中元素的乘积

  • ndarray.dtype

array元素的类型,在numpy中,基本的类型包括int32,int16以及float64等,当然也可以自定义数据类型

  • ndarray.itemsize

array中数据类型的大小,以字节为单位表征。列如int32类型的元素,itemsize的大小这位4

  • ndarray.data

包含array的数据的缓冲区,但是这个属性并不常用,更加常用的是通过索引访问元素

技术分享

  • array的创建

array可以通过python的列表或者元组创建,通过array函数进行创建,但是不能以多个单独的元素进行创建。

技术分享

二维array的创建可以通过序列的序列进行创建,三维的array则可以通过序列的序列的序列进行创建

技术分享

当然,在最开始就可以指明序列元素的类型:


技术分享


此外,还可以通过特定的函数进行创建,比如zeros函数是创建元素均为0的元素,ones创建元素均为1的函数,empty函数创建一个空的array,所有函数的默认类型为float64。

技术分享

如果需要创建一序列的数字,可以通过arrange和linspace创建,arange和linspace的不同在于,arrage是指明了数字序列的上界(不包含上界)以及步长,而linspace则指定了在上界和下界之间的元素的个数,包含上界:

技术分享

  • array的基本操作

array的算术操作是面向元素的。包含加法,减法以及乘法以及在python中称为Universal Function的函数,例如sin,cos以及sqrt等

技术分享

array的乘法需要主要的是:在面临矩阵的运算时,*一般意义上是矩阵乘积,而.*则是面向元素的乘积(在Matlab中)。但是在numpy中*是面向元素乘积的,而矩阵乘积则是需要通过函数dot实现。

技术分享

此外还有自更新运算*=记忆+=等,注意没有++运算

获取array的最大值,最小值,max以及min,可以指定列或者行得到每行或者每列的最大最小值。

技术分享


  • array的迭代,索引以及切片访问

熟悉列表等的应该会比较熟悉索引或者切片操作,这里就不详细介绍了,这里主要介绍迭代操作访问。

迭代访问仅仅适用于行迭代。

技术分享

  • array的堆积方式

在行或者列的值大小相同时,可以采取行堆积或者列堆积,从而组成一个新的array。注意行或者列的大小一定要匹配,或者堆积不能执行

技术分享

大致内容介绍到这里。此外,以下是应用比较多的函数列表:

Array Creation
arangearraycopyemptyempty_likeeyefromfilefromfunctionidentitylinspacelogspacemgrid,ogridonesones_likerzeroszeros_like
Conversions
ndarray.astypeatleast_1datleast_2datleast_3dmat
Manipulations
array_splitcolumn_stackconcatenatediagonaldsplitdstackhsplithstackndarray.itemnewaxis,ravelrepeatreshaperesizesqueezeswapaxestaketransposevsplitvstack
Questions
allanynonzerowhere
Ordering
argmaxargminargsortmaxminptpsearchsortedsort
Operations
choosecompresscumprodcumsuminnerndarray.fillimagprodputputmaskrealsum
Basic Statistics
covmeanstdvar
Basic Linear Algebra
crossdotouterlinalg.svdvdot

numpy简单入门学习

标签:

原文地址:http://blog.csdn.net/mao19931004/article/details/51917680

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!