numpy库
前言numpy库是一种高性能的数据创立和处理包,它常常用于一些数据的处理上,现在来总结一下(这是期末人的倔强)。一般我们把numpy建立的数组可以叫做矩阵,它是不同于列表的。目录前言numpy库的一些函数一.数组的建立的函数1.使用array来直接建立2. 等差数列的建立 arange linspace(1)arange(2)linspacenumpy库的检索、切片numpy库的运算numpy库的
前言
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)星乘
星乘是矩阵对应元素相乘
更多推荐
所有评论(0)