• 数组与pandas模块


    '''数组与pandas模块'''

    # numpy模块:用来做数据分析,对numpy数组(既有行又有列)--矩阵进行科学运算
    
    # tensorflow/pytorch(数学专业/物理专业/计科专业硕士及以上,kaggle 10-15%(清华/北大/浙大)/acm 1-2等奖/ 天池5%)模块:用来做数据分析,对tensor数组(既有行又有列还有层。。。-三维以上)-- 张量进行科学运算
    
    
    lt1 = [1, 2, 3]  # n个元素
    lt2 = [4, 5, 6]
    
    lt = []
    for i in range(len(lt1)):  # O(n)
        lt.append(lt1[i] * lt2[i])
    
    print(lt)
    
    import numpy as np  # 约定俗成的
    
    arr1 = np.array([1, 2, 3])
    arr2 = np.array([4, 5, 6])
    print(arr1 * arr2)
    
    # gpu --> 图形显卡
    
    # 创建numpy数组 --> 可变
    
    # 一维数组(不在讨论范围内)
    arr = np.array([1, 2, 4])
    print(type(arr), arr)
    
    # 二维数组(******)
    arr = np.array([
        [1, 2, 3],
        [4, 5, 6]
    ])
    print(arr)
    
    # 三维数组(不在讨论范围内)--》tensorflow
    arr3 = np.array([
        [[1, 2, 3],
         [4, 5, 6]],
        [[1, 2, 3],
         [4, 5, 6]],
    ])
    print(arr)
    
    # numpy数组的属性
    
    arr = np.array([
        [1, 2, 3],
        [4, 5, 6]
    ])
    
    # T	数组的转置(对高维数组而言) --> 行列互换,转置
    print(arr, '
    ', arr.T)
    
    # dtype	数组元素的数据类型,numpy数组是属于python解释器的;int32/float64属于numpy的
    print(arr.dtype)
    '''
    # 定制化的科学计算机
    11111111111111111111111111111111111111111
    '''
    # size	数组元素的个数
    print(arr.size)
    # ndim	数组的维数
    print(arr.ndim)
    print(arr3.ndim)
    # shape	数组的维度大小(以元组形式)
    print(arr.shape[0])
    print(arr.shape[1])
    # astype	类型转换
    arr = arr.astype(np.float64)
    print(arr)
    
    # 切片numpy数组
    lt = [1, 2, 3]
    
    print(lt[:])
    
    arr = np.array([
        [1, 2, 3],
        [4, 5, 6]
    ])
    
    print(arr[:, :])  # 行,列
    
    print(arr[0, 0])
    
    print(arr[0, :])
    
    print(arr[:, -2:])
    
    # 逻辑取值
    print(arr[arr > 4])
    
    # 赋值
    lt = [1, 2, 3]
    
    lt[:] = [0, 0, 0]
    print(lt)
    
    arr = np.array([
        [1, 2, 3],
        [4, 5, 6]
    ])
    
    arr[0, 0] = 0
    print(arr)
    
    arr[0, :] = 0
    print(arr)
    
    arr[:, :] = 0
    print(arr)
    
    # 数组的合并
    
    arr1 = np.array([
        [1, 2, 3],
        [4, 5, 6]
    ])
    
    arr2 = np.array([
        [7, 8, 9],
        ['a', 'b', 'c']
    ])
    
    print(np.hstack((arr1, arr2)))  # 只能放元组
    
    print(np.vstack((arr1, arr2)))
    
    print(np.concatenate((arr1, arr2), axis=1))  # 默认以列合并 # 0表示列,1表示行
    
    # 通过函数创建numpy数组
    
    print(np.ones((2, 3)))
    
    print(np.zeros((2, 3)))
    
    print(np.eye(3, 3))
    
    print(np.linspace(1, 100, 10))
    
    print(np.arange(2, 10))
    
    arr1 = np.zeros((1, 12))
    print(arr1.reshape((3, 4)))  # 重构形状
    
    # numpy数组运算
    
    # +-*'
    arr1 = np.ones((3, 4)) * 4
    print(arr1)
    
    # numpy数组运算函数
    
    print(np.sin(arr1))
    
    # 矩阵运算--点乘
    
    arr1 = np.array([
        [1, 2, 3],
        [4, 5, 6]
    ])
    
    arr2 = np.array([
        [1, 2],
        [4, 5],
        [6, 7]
    ])
    # 2* 3 3*2
    print(np.dot(arr1, arr2))
    
    # 求逆
    arr = np.array([[1, 2, 3], [4, 5, 6], [9, 8, 9]])
    print(np.linalg.inv(arr))
    
    # numpy数组数学和统计方法
    print(np.sum(arr[0, :]))
    
    # numpy.random生成随机数(******)
    print(np.random.rand(3, 4))
    
    print(np.random.random((3, 4)))
    
    # np.random.seed(1)
    print(np.random.random((3, 4)))
    
    s = np.random.RandomState(1)
    print(s.random((3, 4)))
    
    arr = np.array([[1, 2, 3], [4, 5, 6], [9, 8, 9]])
    np.random.shuffle(arr)
    print(arr)
    
    # 针对一维
    print(np.random.choice([1, 2, 3], 1))
    
    # 针对某一个范围
    print(np.random.randint(1, 100, (3, 4)))
    
    # 以上只是基础中的基础,入门都还没达到  《利用python进行数据分析》
    
    
    # sklearn会对numpy封装
    # pandas模块:操作excel/json/sql/ini/csv(配置文件)/
    
    
    # import pandas as pd
    #
    # df = pd.read_csv('test.csv',header=None)
    # df.to_excel('test.xls')
    
    
    # pd从excel中读取 DataFrame数据类型
    import numpy as np
    import pandas as pd
    
    np.random.seed(10)
    
    index = pd.date_range('2019-01-01', periods=6, freq='M')
    print(index)
    columns = ['c1', 'c2', 'c3', 'c4']
    print(columns)
    val = np.random.randn(6, 4)
    print(val)
    
    df = pd.DataFrame(index=index, columns=columns, data=val)
    print(df)
    
    # 保存文件,读出成文件
    df.to_excel('date_c.xlsx')
    
    # 读出文件
    df = pd.read_excel('date_c.xlsx', index_col=[0])
    print(df)
    
    print(df.index)
    print(df.columns)
    print(df.values)
    
    print(df[['c1', 'c2']])
    
    # 按照index取值
    # print(df['2019-01-31'])
    print(df.loc['2019-01-31'])
    print(df.loc['2019-01-31':'2019-05-31'])
    
    # 按照values取值
    print(df)
    print(df.iloc[0, 0])
    
    df.iloc[0, :] = 0
    print(df)
    
    
  • 相关阅读:

    字符串比较
    String对象的简单方法(特别讲解length()方法的实现。
    Character类
    线性结构应用实例:多项式加法运算
    队列的顺序和链式存储实现
    堆栈用数组和用链表实现
    广义表和多重链表(十字链表)
    powerDesigner的name和comment转化
    jquery-validate
  • 原文地址:https://www.cnblogs.com/jinhongquan/p/11633541.html
Copyright © 2020-2023  润新知