numpy指南

来源:互联网 发布:淘宝买家封号怎么解封 编辑:程序博客网 时间:2024/06/06 05:50

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]   #获取第一个元素的值1a[0:2]  #获取下标我0,1的值,注意不包括2a[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])   #取余   %
原创粉丝点击