24 numpy

156 阅读3分钟

一,安装

这是属于三方的包,如果已经安装了Anaconda,那么是就已经有了,无需另外安排

如果没有安装Anaconda,则需要手动安装numpy:

  • 查看当前版本:print(np.version)

  • 安装最新的稳定版本:pip install numpy

  • 安装指定版本:pip install numpy==版本号

二,简介

numpy主要是一个科学计算库,提供了大量的函数和操作,主要用于多维运算操作,那么在运算过程中就涉及到了数据的处理,在numpy中承载数据的形式一般就是ndarray数组类型

三,创建数组

创建方式

np.array(object,dtype-None)
  • object:array_like,类似数组的对象。如果是标量,就返回包含object的0维数组

  • dtype:data-type,数组所需的数据类型。如果没有给出,会从输入数据推断数据类型,在以前的数据值前面加一个np.就行,如np.int8,np.int16,np.int32等

  • 创建一个数组对象并返回

如下例中,返回一个数组对象

输出为

注意此时输出的数组里面是没有逗号的,此时他的数据类型不是原数组类型,而是numpy.ndarray

并且是一个可迭代对象

ndarray常用属性(重要)

ndarray.ndim

表示数组中轴的数量,可以简单理解为有几层中括号。如下

image.png

在这个数组中,可以看出有两层中括号,第一层是包在[1 2 3]和[4 5 6 ]外的中括号,第二层是包在1 2 3和4 5 6外的中括号,所以,此数组的秩为2,最外层的称为轴0,次层的称为轴1。

用程序实现如下

输出为

ndarray.shape

表示数组的形状,可以理解成列出每个轴下包含的数据个数,由轴1开始列,如下例中

image.png

轴0内包含[1 2 3]和[4 5 6 ]两个数据,轴1内包含1 2 3或4 5 6三个数据,所以形状为(2, 3)

ndarray.size

数组元素的总个数,很好理解不多解释

ndarray.dtype

ndarray对象的元素数据类型,如下

ndarray.itemsize

ndarray对象中每个元素的大小,以字节为单位

四,基本运算

常涉及到的就是算术和比较操作,加减乘除大小等,如下

image.png

会被定义成逐元素操作

五,广播机制

numpy里面的数组也是有广播机制的,如比如一个(3,2)形状和(3,1)形状的数组相加,就会把(3,1)的数组用1填充为(3,2)的形状再进行操作,如下

输出为

这就是把b填充为了[ [2 , 1] , [2, 1] , [1, 1] ],再和a相加

在numpy中的广播机制为,后缘维度相同或不同的维度有1,则可以广播

六,索引和切片

在numpy中的数组不会复制内部数组数据,只会生成原始数据的新视图;数组支持多为数组的多维索引和切片

如下例

输出为

在使用以前的切片方式的时候,就是先按照[: 2]切出[ [1 2] [4 5] ],然后再按照[1:2]切除[[4 5]]

但是在使用第二种切片方式的时候就是对这个多维数组的0,1轴进行切片

七,常用操作

np.copy(a):返回给定对象的数组副本

ndarray.copy():对象方法,返回数组的副本

输出为

np.reshape(a,newshape):将数组a的形状改为newshape的形状,再返回形成的新数组

np.resize(a,new_shape):返回具有指定形状的新数组

ndarray.resize(new_shape):直接返回原数组的形状,无返回值

输出为

image.png