zoukankan      html  css  js  c++  java
  • Numpy常用数据结构、数据清洗函数、数据结构series和方法、数据结构dataframe和方法

    Numpy常用数据结构

     

    1. 数组创建

    In [ ]:
    # 导入库
    import numpy as np
    
    In [ ]:
    arr1 = np.array([-9,7,4,3])
    
    In [ ]:
    arr1
    
    In [ ]:
    arr2 = np.array([-9,7,4,3],dtype =float)# 尝试改变为int或者str
    
    In [ ]:
    print(arr2)
    
    In [ ]:
    arr3 = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
    
    In [ ]:
    arr3
    
    In [ ]:
    # 使用其他函数创建数组
    np.arange(0,10,1)   
    
    In [ ]:等差
    np.linspace(1,10,10)
    
    In [ ]:零矩阵
    np.zeros([4,5])
    
    In [ ]:全是一的矩阵
    np.ones([2,3])  
    
    In [ ]:
    arr3 + 1 #矩阵运算
    
     

    2. 数组方法

    In [ ]:
    # 查看数组维度
    arr3.ndim 
    
    In [ ]:几行几列
    arr3.shape
    
    In [ ]:里面的元素个数
    arr3.size
    
    In [ ]:里面的元素类型
    arr3.dtype
    
    In [ ]:
    arr3 + 1 #矩阵运算
    
    In [ ]:
    arr3 /2
    
    In [ ]:
    data2 = ((8.5,6,4.1,2,0.7),(1.5,3,5.4,7.3,9),(3.2,4.5,6,3,9),(11.2,13.4,15.6,17.8,19))
    arr2 = np.array(data2)
    
    In [ ]:
    arr2
    
    In [ ]:
    arr2[2] #访问第三行,可以理解为行索引
    
    In [ ]:
    arr2[2,1] #访问第三行,可以理解为行索引
    
    In [ ]:
    arr2[:,2:4] #访问第三列
    
    In [ ]:
    arr2[1:3] #2行和3行
    
    In [ ]:
    arr2[1:,2:] #第2行到最后一行,第3列到最后一列
    
    In [ ]:
    arr2[2,1] #访问第三行,第二个元素,第一个是行索引,第二个是列索引
    
    In [ ]:和上面一个效果相同
    arr2[2][1] #访问第三行,第二个元素,第一个是行索引,第二个是列索引
    
     

    3. Numpy常用数据清洗函数

     
    • 排序
    • 降序建议用sorted函数
    In [ ]:
    s  = np.array([1,2,3,4,3,1,2,2,4,6,7,2,4,8,4,5])
    
    In [ ]:
    np.sort(s)
    
    In [ ]:
    sorted(s,reverse =True)#降序
    
    In [ ]:
    arr1 = np.array([[0,1,3],[4,2,9],[4,5,9],[1,-3,4]])
    
    In [ ]:
    arr1
    
    In [ ]:
    np.sort(arr1)
    
    In [ ]:
    np.sort(arr1,axis = 0) # 0代表沿着行的方向, 1代表沿着列的方向

    arr1 = np.array([[0,1,3],[4,2,9],[4,5,9],[1,-3,4]])
    对于这里的理解可以理解为矩阵的转制的概念,也就是013 429 459 1-34分别表示列向量
    所谓行,就是每一个元素里面的第n个,比如这里的0,4,4,1
    所谓列,就是一个元素里面的所有数,比如这里的0,1,3
    In [ ]:
    np.sort(arr1,axis = 1)
    
     
    • argsort返回的是排完序以后,在原数据中的索引位置
    • 返回的是数据中,从小到大的索引值
    In [ ]:
    s = np.array([1,2,3,4,3,1,2,2,4,6,7,2,4,8,4,5])
    
    In [ ]:
    np.argsort(s) 
    
     
    • np.where和np.extract
    In [ ]:
    np.where(s>3,1,-1)# 满足条件的,赋值为1,不满足的赋值为-1,返回的数据长度和s一样
    
     
    np.where(s>3,s,-1)# 满足条件的,赋值为本身,不满足的赋值为-1,返回的数据长度和s一样
    • np.extract 只会输出满足条件的数据
    In [ ]:
    筛选
    np.extract(s>3,s)# 只输出满足条件的数据
    
     

    4. Pandas常用数据结构

     

    series序列

    In [ ]:
    import pandas as pd
    import numpy as np
    
    In [ ]:
    # 构造序列
    series1 = pd.Series([2.8,3.01,8.99,8.59,5.18])
    
    In [ ]:index就是索引,name是序列的名字
    series2 = pd.Series([2.8,3.01,8.99,8.59,5.18],index = ['a','b','c','d','e'],name ='这是一个series')
    
    In [ ]:
    series3 = pd.Series({'北京':2.8,'上海':3.01,'广东':8.99,'江苏':8.59,'浙江':5.18})
    这个时候中文的地方会变成索引,而后面分别跟者值
    可以通过series3[0]
    series3['北京']得到2.8
    可以通过series3[0:3]得到'北京':2.8,'上海':3.01,'广东':8.99。 左闭右开
    
    
    可以通过series3['北京':'江苏']得到之间所有的值      左闭右闭

     
    In [ ]:
    #series方法
    series2.values   输出到是值
    
    In [ ]:
    series3.index        输出的是健
    
     

    dafaframe

    In [ ]:列表
    # 构造数据框
    #数据框其实就是一个二维表结构,是数据分析中,最常用的数据结构
    list1 = [['张三',23,'男'],['李四',27,'女'],['王二',26,'女']]#使用嵌套列表
    df1 = pd.DataFrame(list1,columns=['姓名','年龄','性别'])
    
    In [ ]:
    type(df1)
    
    In [ ]:字典,键就是列标签
    df2 = pd.DataFrame({'姓名':['张三','李四','王二'],'年龄':[23,27,26],'性别':['男','女','女']}) #使用字典,字典的键被当成列名
    
    In [ ]:
    df2
    
    In [ ]:数组
    array1 = np.array([['张三',23,'男'],['李四',27,'女'],['王二', 26,'女']]) #使用numpy
    df3 = pd.DataFrame(array1,columns=['姓名','年龄','性别'],index = ['a','b','c'] )

    行标签是index,列标签是columns
    In [ ]:
    #dataframe方法
    所有的除标签外的值 df2.values
    In [ ]:行标签
    df2.index
    
    In [ ]:列标签,这个只针对da ta f ra me有用
    df2.columns
    df2.columns.tolist()转变为列表的格式
    In [ ]:数据的类型
    df2.dtypes
    
    In [ ]:维度
    df2.ndim
    
    In [ ]:多少个元素
    df2.size
    
    In [ ]:
     
    df2.shape
  • 相关阅读:
    noi放苹果
    二分 网线主管
    hdu 1421 dp
    hdu 1087 最大上升子序列的和(dp或线段树)
    快速排序+查找
    zoj 1425 最大交叉匹配
    hdu 3501 容斥原理或欧拉函数
    hdu 4671 异面直线的距离
    hdu 3320 计算几何(三维图形几何变换)
    hdu 2857 点在直线上的投影+直线的交点
  • 原文地址:https://www.cnblogs.com/xingnie/p/12259723.html
Copyright © 2011-2022 走看看