Numpy指南
- 2019 年 12 月 31 日
- 筆記
文章目录
numpy指南
numpy是一个能够处理多维数组的库,虽然python中也内置了处理数组的库,但是这个并不能满足大数据时代的需求,因此产生了可以处理多维数组的numpy
安装
pip install numpy
创建
array
array
函数是一个最基本的创建方式,其中传入的参数是一个序列,既可以创建一维数组,也可以创建二维数组,但是这种方法不太灵活,因为你要把这个序列显式的写出来,先不多说了,自己体会吧
import numpy as np a=np.array([1,2,3,4,5]) #创建一个二维数组 b=np.array([[1,2,3,4],[2,3,4,5]]) #创建一个二维数组 print a.shape #输出数组的维度,(5,) print b.shape #(2,4)
arange
arange(start,end,step)
创建一个一维数组,起始值为start,终值为end,步长为step,其中np.arrange(10) 表示起始值为0,终值为10,步长为1
a=np.arange(0,10,1) b=np.arange(10)
reshape
reshape(a,b)
能过改变当前数组的尺寸将其赋值给新的数组,但是当前数组并没有改变,这个用来改变当前数组的维度,可以将以为数组改变为二维数组
a=np.arange(10) #创建一个有10个元素的一维数组 b=np.reshape(2,5) #将改变后的当前数组赋值给b,但是a数组并没有改变 ,2*5=10 c=np.reshape(5,-1) #第一个参数为5行,第二个-1表示自动计算生成,10/5=2
linspace
linspace(start,end,number)
创建一个等距离的数组,start是起始值,end是终值,number是个数,创建的是一个一维数组,其中的元素全部是浮点数,默认的是包括终值的,但是可以通过endpoint=False指定不包括终值
a=np.linspace(0,10,10) #包含10的一个等差数组 b=np.linspace(0,10,10,endpoint=False) #不包含10的一个等差数组
logspace
logspace(start,end,number)
创建的是在10^start和10^end之间包含number个元素的等比数组,创建的是一个等比数组
a=np.logspace(0,1,10) #创建一个在1-10之间的10个元素的等比数组
存取数据
下标存取
a=np.arange(10) #[0,1,2,3,4,5,6,7,8,9] a[0] #获取第一个元素的值1 a[0:2] #获取下标我0,1的值,注意不包括2 a[0:10:1] # 获取下标在0-10之间的(包括0,不包括9),步长为1的元素,就是每隔一个区娶一个 a[1:] #获取从第二个元素开始到最后的所有的元素 a[:8] #获取下标为0-8之间的元素(不包括8) a[1::1] #获取下标为0到最后并且步长为1的所有元素 a[8:4:-1] #获取起始下标为8,终止下标为4,并且步长为-1,这是从后向前获取元素 a[::-1] #将数组逆置
使用整数序列
当使用整数序列对数组元素进行存取时,将使用整数序列中的每个元素作为下标,整数序列可以是列表或者数组。使用整数序列作为下标获得的数组不和原始数组共享数据空间。
x = np.arange(10,1,-1) x[[3, 3, 1, 8]] # 获取x中的下标为3, 3, 1, 8的4个元素,组成一个新的数组
ufunc
ufunc是universal function的缩写,它是一种能对数组的每个元素进行操作的函数。NumPy内置的许多ufunc函数都是在C语言级别实现的,因此它们的计算速度非常快.
np.sin(x) #对数组中的每一个值进行sin操作,并且返回一个数组 np.sin(x,y) #对数组x中的值进行sin操纵,所得结果返回给y,但是也返回一个结果数组,这个数组和y共享一块空间的 np.add(a,b) #将两个数组中的对应的值都相加,返回的是一个新的数组 np.add(a,b,c) # 将两个数组中对应的值相加,结果复制给c,并且返回一个新的数组 np.subtract(a,b) # 两个数组相减,a-b,返回的是一个新的数组 np.subtract(a,b,c) np.multiply(a,b) #相乘 np.multiply(a,b,c) #相乘 divide(a,b,[,y]) #相除,如果是两个整数相除,那么返回的是整数 true_divide(a,b,[,y]) #相除,总是返回精确的商 floor_divide(a,b,[,y]) #总是对返回值取整 power(a,b,[,y]) # a^b 平方 mod(a,b,[,y]) #取余 %