numpy简单入门学习

来源:互联网 发布:linux vim c语言 编辑:程序博客网 时间:2024/05/18 21:43

为了快速的学习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

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

  • array的基本操作

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

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

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

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

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

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

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

  • array的堆积方式

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