前言

numpy库是一种高性能的数据创立和处理包,它常常用于一些数据的处理上,现在来总结一下(这是期末人的倔强)。一般我们把numpy建立的数组可以叫做矩阵,它是不同于列表的。

numpy库的一些函数

一.数组的建立的函数

1.使用array来直接建立

import numpy as np
A=[1,2,3]
A=np.array(A) # 结果为array[1,2,3]
B=[[1,2,3],[4,5,6]]
B=np.array(B) ''' 结果为array[[1,2,3],
							[4,5,6]]'''							

它可以直接把列表转换为数组

2. 等差数列的建立 arange linspace

(1)arange

A=np.arange(5) #较为常用 一定不包含所给的数
print(A) # [0,1,2,3,4]
A=np.arange(0,10,2) # 一般有三个参数
print(A) # [0,2,4,6,8]

arange 一般有三个参数 arange(a,b,c) a为等差数列的首项默认为0,c为公差,默认为1。若数列中的数为x,则x的取值范围为a≤x<b.这个跟range一样是左闭右开的,且,最后面一个数位步长。

(2)linspace

在这里插入图片描述

在这里插入图片描述
跟arange一样linspace也有三个元素,linspace(a,b,c) 但有区别的,a还是一样是首项,但此时b是末项,c是项数,linspace这个函数更好理解,由于项数往往并不与首末项匹配,所以linspace里面所得的数是浮点数。

三.随机数的生成

numpy中的随机数一般有random来生成,主要有整数随机以及正态分布的随机数

(1)random.rand(a,b)

生成一个数值在[0,1)之间,a行b列的随机数数组在这里插入图片描述

(2)random.randint(a,b,(c,d))

生成一个数值在[a,b)之间c行d列的数组在这里插入图片描述

(3)random.normal(E,u,(a,b))

生成一个均值为E,标准差为u,a行b列的数组
在这里插入图片描述

四.其他函数

(1)astype与dtype

dtype是用来看数组中的数字是哪些类型,astype是新建立一个数组将其中的类型改为我们想要的。

在这里插入图片描述
如上图就是通过linspace函数建立一个数组然后检查其中的类型,上文说过linspace全是浮点数,所以返回的是’flaot64’(python中的浮点数都是双精确64位),然后再用astype建立一个新的数组里面的数字全是整数。

(2)shape与reshape

shape是返回数组的形状,reshape是改变数组的形状在这里插入图片描述
用了reshape改变了建立的等差数列的形状然后再用shape返回具体形状

一般接触的都是二维数组,但有时候需要将二维数组里面的数变为一个列表里面的数,即先要转为一维数组。还是上面的3*4的数组,现在有两种转为一维数组的办法

B=a.reshape(1,12)
C=a.reshape(12)

在这里插入图片描述
可见如果给reshape两个参数,就会默认改成二维数组,如果只给一个参数就会变成一维数组,因为一维数组没有二维的概念。

numpy库的索引

numpy中有四种索引,单值索引,切片索引,列表索引以及布尔型索引。
先给定一个numpy数组

A=np.arange(12).reshape(3,4)
'''A为array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])'''
B=np.array([1,2,3])
# B为array([1,2,3])

(1)单值索引

对于一维数组一个数的索引就是列表索引,二维数组是行索引。
在这里插入图片描述
对于二维数组可以多次索引也可以坐标索引。

(2)切片索引

在一维数组中与列表相同,二维数组中依旧是遵循先切行(0轴)后切列(1轴)的方式。
在这里插入图片描述

A[:,1:2] #0轴全切,1轴切第2列
A[:,0] #0轴全切,1轴检索第一列 切片与单值检索可以同时使用

(3)列表索引

列表索引就是通过列表来检索,这个很智能,注意是列表检索索引方括号之中要填入一个列表!在列表中填入的就是依次要选取的

A[[1,0,2]] #依次第2行 第1行 第3行
'''array([[ 4,  5,  6,  7],
       [ 0,  1,  2,  3],
       [ 8,  9, 10, 11]])'''

(4)布尔型索引

布尔型索引就是在方括号内放入一个判断逻辑符号,并从此中找出符合判断的数组成一个数组返回。可以再布尔型索引之中插入广播操作,以后列表中的修改就不用用循环啦!在这里插入图片描述

numpy库的运算

一.广播运算

广播操作是指对数组对应的数字进行操作。
比如找出数组内的小于200的数在这里插入图片描述
还可以用于一次性改变数组内的数,也可以一起乘除加减。在这里插入图片描述

二.标量运算符

像math库一样,numpy库中也有数学运算符在这里插入图片描述
比如说对数组里面的所有数取sin就可以用numpy库快速得到
在这里插入图片描述

三.矩阵运算

numpy为我们提供了两种运算方法,一个是点乘另一个是星乘。

(1)点乘

点乘就是折磨的线性代数里面的矩阵乘法,AB为A的行乘以B的列在这里插入图片描述
由于矩阵的乘法是考虑先后顺序的,所以A.dot(B)就是AB

(2)星乘

星乘是矩阵对应元素相乘在这里插入图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐