数据分析师-Numpy基础

作者: 茶小美 | 来源:发表于2019-02-25 13:57 被阅读23次

    索引永远都用中括号

    (行,列)

    一、Numpy数据结构

    1.创建numpy的方法:

    (1)np.array()函数,里面可以是生成器、列表、元组、数组

    (2)np.arange(10):数组生成器,类似range左闭右开 有步长 切片

    (3)二维数组:np.array([[1,2,3],[4,5,6]])

    (4)简便生成数组的方法:np.random.rand(10).reshape(2,5)2行5列的数组

    (5)生成均匀样本的数组:np.linspace(开始,结束,num=间隔,endpoint=true,restep=False)

    endpoint默认是true,右闭;retstep默认是false,true返回元组数据,第一部分是结果第二部分步长

    (6)np.zeros()/np.ones():生成元素为0/1的数组 np.zeros((3,5),dtype=np.int64)创建多维

    (7)np.zeros_like(ar)/np.ones_like(ar):生成和ar形状一样的元素为0/1的数组

    (8)np.eye(5):生成N*N矩阵的对角线为1,其他为0的数组

    注意:如果两行数组的个数不同就无法形成二维,而会变成一维数组

    2.numpy的方法

    ar.ndim:查看轴(几维) ar.shape:行列维度  ar.size:共多少元素  ar.dtype:里面的数值类型  type(ar):ar变量的类型

    3.numpy通用函数

    (1)数组形状:ar.T转置,一维数组不变,二维数组变化

    (2)np.reshape(ar,(2,3)) 或   np.arange(10).reshape(5,2) --都生成新数组

    (3)np.resize(ar,(2,3)) 或 np.arange(10).resize(12) --可以元素和数组行列个数不同,但是会顺序排序

    (4)数组的复制:.copy()

    (5)数组类型转换:ar.astype(np.int64)

    (6)数组堆叠

    a、列之间的堆叠,条数不变,标签改变np.hstack(ar1,ar2)

    b、行之间的堆叠,条数改变,标签不变np.vstack(ar1,ar2)

    c、np.stack((ar1,ar2), axis=0行连接/1先把要堆叠的本身变成反向在横向堆叠,列连接)

    (7)数组拆分 np.hsplit(ar,2)拆分两列, np.vsplit(ar,2)拆分两行

    (8)数组的运算

    ar.std()标准差、ar.var()方差、

    print(ar.sum(), np.sum(ar,axis=0),np.sum(ar,axis=1))#求和,np.sum(axis=0按列求和 axis=1按行求和)

    print(np.sort(np.array([1,2,4,5,2,1])))#排序

    4.numpy的索引及切片

    (1)一维数组的索引和切片与列表类似

    (2)二维数组:ar是个4*4的二维数组

    ar[2][3]、ar[2,3]:索引为2行3列的数据 ar[:2,2:]:索引为0,1行2列-最后列的数据  ar[:,-1]:索引为最后列

    (3)三维数组:ar = np.arange(12).reshape(3,2,2)#三个2*2的二维数组  ar[2][1][1]第三个二维数组中索引为1行1列的数据

    (4)布尔型的索引和切片:以布尔型的矩阵做筛选

    ar = np.arange(12).reshape(3,4)

    i = np.array([True,False,True])    j = np.array([True,True,False,False])

    print(ar[i,:])#或print(ar[i])第一个是行,第二行是列

    print(ar[:,j])

    print(ar>5,type(ar>5)) 返回布尔型

    print(ar[ar>5])#返回数值,pandas不同之处在于为False会填充NaN

    (5)数组索引和切片的更改及赋值:与列表类似

    5.numpy的随机数

    (1)np.random.normal(size=(4,4)) --标准正态分布

    (2)np.random.rand(4)生成一维数组(4,4)生成二维数组  --0-1之间的随机浮点数--均匀分布

    (3)np.random.randint(low,high,size=n)--生成size个(可以定义多维)随机整数,左闭右开

    例:np.random.randint(2,10,size=(2,3))

    (4)np.random.randn--0-1之间的正态分布

    6.存储数组数据

    (1)存成.npy文件:np.save(文件名,数据)

    (2)存成文本文件:np.savetxt(文件名,数据,delimiter = ',',fmt='.2f')--需要delimiter参数定义如何分割,fmt格式化

    7.读取数组数据

    (1)np.load(文件名)

    (2)np.loadtxt(文件名,delimiter=',')--识别符

    相关文章

      网友评论

        本文标题:数据分析师-Numpy基础

        本文链接:https://www.haomeiwen.com/subject/zaswyqtx.html