【实验楼/NumPy】numpy基本概念+基本操作

Numpy支持的数据类型

Numpy只支持数值类型的变量
bool, int类,uint类,float类,complex类
这些都是我们的数据类型dtype
我们要利用这些东西构造我们的数组类型ndarray

创建有规律数组的方法

  1. arange方法创建,用法同range。
  2. linspace方法创建,arange是规定步长,在linspace中是规定区间中数据的数目。
  3. ones——指定数组的形状(只能用tuple),创建全为1的数组。
  4. zeros——指定数组的形状(只能用tuple),创建全为0的数组。
  5. eye——创建一个单位矩阵。

数组的各种属性

我只能说,numpy中ndarray的属性实在是太多了,包括实验楼里提到的我都不想把他们完全列举出来。
这里我们先假设a是一个由array创建的ndarray类型的数组

  1. .T属性,获得该矩阵的转置形态。
  2. .size属性,获得数组中所有元素的个数统计。
  3. .ndim属性,获得该数组的维度。
  4. .shape属性,输出该数组各个维度的大小。
    在这里插入图片描述

数组的各种操作

为了能够更加方便地操作各种各样的参数,我们需要把我们的参数存储到一个矩阵中,同时,为了使用一些优化算法,我们又不得不展开我们的数组。numpy中这些操作都是比较简单的。
1. .reshape((shape_tuple))
2. .ravel()

其它还有一些很厉害的操作, 在这之前我们需要明白一些事实。

· 什么是ndarray的的axis?

axis是多维数组的一个属性,以二维数组为例,axis=0代表沿着列的方向向下,axis=1代表沿着行的方向向右

在了解了以上知识以后,我们就可以了解一下操作了:
首先是数组和数组之间的操作:

  1. 数组连接,把多个数组拼接成一个数组——concatenate
  2. 数组的堆叠,允许更加灵活地堆叠数组——stack系列
  3. 数组的拆分,相当于是堆叠的逆操作——split系列

然后是数组中列和行的操作:

  1. 删除列或者行——delete,给定axis的值决定删除列还是行
  2. 插入列或者行——insert,同样由axis来决定
  3. 在末尾添加数组——append。和insert操作差不多

其它

随机数操作

主要是使用numpy.random模块内的各种函数。
你要知道numpy中操作的单元都是数组,所以最后生成的都是ndarray的对象,所以你给定的参数不一定是随机数的区间,很可能是最后数组的shape!
这里面有很多随机数可以挑选,请移步相关文档,这里不再赘述。

数学函数

numpy支持比built-in math库更加复杂的数学运算(这里就不仅仅局限于数组了)甚至可以求解积分和差分。
这里我主要想讲讲与矩阵和向量有关的运算
还有与线性代数有关的运算,这里使用到的是numpy.linalg模块中的内容。
在这里插入图片描述

索引和切片

索引操作,以二维数组为例:

  1. 获得某个索引的元素,比如要获得(m, n)位置上的元素,就a[m, n]。
  2. 获得某些元素,我们可以a[([m1, n1], [m2, n2])]。
    切片操作,和list的切片操作时一样的。
    ndarray[start : stop : step]
    我们在对高维数组进行操作的时候,切片也可以以索引的形式来进行。
    比如a[0:3, 2:4]什么意思一目了然

排序,搜索,计数

  1. 排序:sort方法
  2. 搜索和计数:
    在这里插入图片描述
发布了137 篇原创文章 · 获赞 19 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43338695/article/details/102990261
今日推荐