• 【Numpy-矩阵库~python】



    个人昵称:lxw-pro
    个人主页:欢迎关注 我的主页
    个人感悟: “失败乃成功之母”,这是不变的道理,在失败中总结,在失败中成长,才能成为IT界的一代宗师。

    # -*- coding = utf-8 -*-
    # @Time : 2022/8/7 14:30
    # @Author : lxw_pro
    # @File : NumPy 矩阵库.py
    # @Software : PyCharm
    
    • 1
    • 2
    • 3
    • 4
    • 5

    numpy学习(续)

    NumPy 中包含了一个矩阵库 numpy.matlib,该模块中的函数返回的是一个矩阵,而不是 ndarray 对象。

    转置矩阵

    import numpy as np
    
    lxw = np.arange(16).reshape(4, 4)
    print("原数组为:\n", lxw)
    
    print("转置过的数组为:\n", lxw.T)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    matlib.empty()

    matlib.empty() 函数返回一个新的矩阵

    import numpy.matlib
    
    kk = np.matlib.empty((3, 3))    # 填充为随机数据
    print(kk)
    
    • 1
    • 2
    • 3
    • 4

    numpy.matlib.zeros()

    numpy.matlib.zeros() 函数创建一个以 0 填充的矩阵

    ll = np.matlib.zeros((3, 3))
    print(ll)
    
    • 1
    • 2

    numpy.matlib.ones()

    numpy.matlib.ones()函数创建一个以 1 填充的矩阵

    yy = np.matlib.ones((3, 3))
    print(yy)
    
    • 1
    • 2

    numpy.matlib.eye()

    numpy.matlib.eye() 函数返回一个矩阵,对角线元素为 1,其他位置为零

    dd = np.matlib.eye(n=3, M=4, k=0, dtype=float)
    print(dd)
    
    • 1
    • 2

    numpy.matlib.rand()

    numpy.matlib.rand() 函数创建一个给定大小的矩阵,数据是随机填充的

    sj = np.matlib.rand((3, 3))
    print(sj)
    
    • 1
    • 2

    二维矩阵

    e = np.matrix('1, 2;3, 4')
    print(e)
    
    • 1
    • 2

    n维数组

    r = np.asarray(e)
    print(r)
    
    • 1
    • 2

    以上所有程序对应运行结果如下:

    原数组为:
     [[ 0  1  2  3]
     [ 4  5  6  7]
     [ 8  9 10 11]
     [12 13 14 15]]
    转置过的数组为:
     [[ 0  4  8 12]
     [ 1  5  9 13]
     [ 2  6 10 14]
     [ 3  7 11 15]]
     
    [[           nan 0.0000000e+000 1.1581509e-311]
     [2.0236929e-320 0.0000000e+000 0.0000000e+000]
     [0.0000000e+000 0.0000000e+000 0.0000000e+000]]
     
    [[0. 0. 0.]
     [0. 0. 0.]
     [0. 0. 0.]]
     
    [[1. 1. 1.]
     [1. 1. 1.]
     [1. 1. 1.]]
     
    [[1. 0. 0. 0.]
     [0. 1. 0. 0.]
     [0. 0. 1. 0.]]
     
    [[0.39836727 0.16983388 0.91118039]
     [0.77283047 0.24608713 0.72451454]
     [0.32447712 0.21523051 0.4374776 ]]
     
    [[1 2]
     [3 4]]
     
    [[1 2]
     [3 4]]
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    —————————————————————————————————

    pandas 每日一练:

    # -*- coding = utf-8 -*-
    # @Time : 2022/8/7 19:48
    # @Author : lxw_pro
    # @File : pandas-12 练习.py
    # @Software : PyCharm
    
    import pandas as pd
    import matplotlib.pyplot as plt
    
    lxw = pd.read_excel("site.xlsx")
    print(lxw)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    运行结果如下:

         Unnamed: 0  Unnamed: 0.1   create_dt  ...   yye  sku_cost_prc     lrl
    0             0             1  2016-11-30  ...   8.8          6.77  30.00%
    1             1             2  2016-11-30  ...   7.5          5.77  30.00%
    2             2             3  2016-11-30  ...   5.0          3.85  30.00%
    3             3             4  2016-11-30  ...  19.6          7.54  30.00%
    4             4             5  2016-12-02  ...  13.5         10.38  30.00%
    ..          ...           ...         ...  ...   ...           ...     ...
    751         751           752  2016-12-31  ...   1.0          0.77  30.00%
    752         752           753  2016-12-31  ...   2.0          1.54  30.00%
    753         753           754  2016-12-31  ...   1.0          0.77  30.00%
    754         754           755  2016-12-31  ...   7.6          2.92  30.00%
    755         755           756  2016-12-31  ...   3.3          2.54  30.00%
    [756 rows x 8 columns]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    71、以5个数据作为一个数据滑动窗口,计算这五个数据总和(sku_cost_prc)

    zh = lxw['sku_cost_prc'].rolling(5).sum()
    print(zh)
    
    • 1
    • 2

    运行结果如下:

    0        NaN
    1        NaN
    2        NaN
    3        NaN
    4      34.31
           ...  
    751    10.89
    752    10.51
    753     8.36
    754     9.90
    755     8.54
    Name: sku_cost_prc, Length: 756, dtype: float64
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    72、将sku_cost_prc 5日均线、20日均线与原始数据绘制在同一个圈上

    lxw['sku_cost_prc'].plot()
    lxw['sku_cost_prc'].rolling(5).mean().plot()
    lxw['sku_cost_prc'].rolling(20).mean().plot()
    
    plt.show()
    
    • 1
    • 2
    • 3
    • 4
    • 5

    运行效果如下:

    在这里插入图片描述


    73、将数据往后移动5天

    wh = lxw.shift(5)
    print(wh)

    运行结果如下:

         Unnamed: 0  Unnamed: 0.1   create_dt  ...   yye  sku_cost_prc     lrl
    0           NaN           NaN         NaN  ...   NaN           NaN     NaN
    1           NaN           NaN         NaN  ...   NaN           NaN     NaN
    2           NaN           NaN         NaN  ...   NaN           NaN     NaN
    3           NaN           NaN         NaN  ...   NaN           NaN     NaN
    4           NaN           NaN         NaN  ...   NaN           NaN     NaN
    ..          ...           ...         ...  ...   ...           ...     ...
    751       746.0         747.0  2016-12-31  ...  20.0          2.00  40.00%
    752       747.0         748.0  2016-12-31  ...   5.0          1.92  30.00%
    753       748.0         749.0  2016-12-31  ...   3.8          2.92  30.00%
    754       749.0         750.0  2016-12-31  ...   1.8          1.38  30.00%
    755       750.0         751.0  2016-12-31  ...   3.9          3.90   2.56%
    [756 rows x 8 columns]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    74、将数据往前移动5天

    wq = lxw.shift(-5)
    print(wq)
    
    • 1
    • 2

    运行结果如下:

         Unnamed: 0  Unnamed: 0.1   create_dt  ...   yye  sku_cost_prc     lrl
    0           5.0           6.0  2016-12-02  ...   3.9          3.00  30.00%
    1           6.0           7.0         NaN  ...  10.8          8.31  30.00%
    2           7.0           8.0  2016-12-02  ...  15.5         11.92  30.00%
    3           8.0           9.0  2016-12-02  ...   3.5          2.69  30.00%
    4           9.0          10.0  2016-12-02  ...   NaN          7.31  30.00%
    ..          ...           ...         ...  ...   ...           ...     ...
    751         NaN           NaN         NaN  ...   NaN           NaN     NaN
    752         NaN           NaN         NaN  ...   NaN           NaN     NaN
    753         NaN           NaN         NaN  ...   NaN           NaN     NaN
    754         NaN           NaN         NaN  ...   NaN           NaN     NaN
    755         NaN           NaN         NaN  ...   NaN           NaN     NaN
    [756 rows x 8 columns]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    75、使用expanding函数计算sku_cost_prc的移动窗口均值

    yj = lxw['sku_cost_prc'].expanding(min_periods=1).mean()
    print(yj)
    
    • 1
    • 2

    运行结果如下:

    0      6.770000
    1      6.270000
    2      5.463333
    3      5.982500
    4      6.862000
             ...   
    751    9.549093
    752    9.538429
    753    9.526769
    754    9.517995
    755    9.508740
    Name: sku_cost_prc, Length: 756, dtype: float64
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    每日一言:

    沉缅于虚幻的梦想,而忘记现实的生活,这是毫无意义的,千万记住。

    人往往需要说很多话,然后才能够归至潜默。


    持续更新中…

    点赞,你的认可是我创作的动力
    收藏,你的青睐是我努力的方向
    评论,你的意见是我进步的财富
    关注,你的喜欢是我长久的坚持
    在这里插入图片描述

    欢迎关注微信公众号程序人生6】,一起探讨学习哦!!!

  • 相关阅读:
    【JAVA】List
    全面解析:Foxit Reader支持的操作系统及其特性
    buuctf crypto 【RSA】解题记录
    山西省行政村边界数据/乡镇街道边界数据/行政区划边界分布
    Centos 停服倒计时!你的操作系统何去何从?
    Linux quota
    css让图片的某些区域拉伸,其他部分保持比例,起到类似于安卓中点九.9图的效果
    GaussDB技术解读系列:高安全之密态等值
    每日一记 关于Python的准备知识、快速上手
    Spring 深入——IoC 容器 02
  • 原文地址:https://blog.csdn.net/m0_66318554/article/details/126213992