Numpy-矩阵库~python

Posted lxw-pro

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Numpy-矩阵库~python相关的知识,希望对你有一定的参考价值。

目录


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

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

numpy学习(续)

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

转置矩阵

import numpy as np

lxw = np.arange(16).reshape(4, 4)
print("原数组为:\\n", lxw)

print("转置过的数组为:\\n", lxw.T)

matlib.empty()

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

import numpy.matlib

kk = np.matlib.empty((3, 3))    # 填充为随机数据
print(kk)

numpy.matlib.zeros()

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

ll = np.matlib.zeros((3, 3))
print(ll)

numpy.matlib.ones()

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

yy = np.matlib.ones((3, 3))
print(yy)

numpy.matlib.eye()

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

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

numpy.matlib.rand()

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

sj = np.matlib.rand((3, 3))
print(sj)

二维矩阵

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

n维数组

r = np.asarray(e)
print(r)

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

原数组为:
 [[ 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]]

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

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)

运行结果如下:

     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]

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

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

运行结果如下:

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

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()

运行效果如下:


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]

74、将数据往前移动5天

wq = lxw.shift(-5)
print(wq)

运行结果如下:

     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]

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

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

运行结果如下:

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

每日一言:

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

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


持续更新中…

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

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

以上是关于Numpy-矩阵库~python的主要内容,如果未能解决你的问题,请参考以下文章

2 如何用Python进行数据计算

Python机器学习(四十八)NumPy 矩阵库函数

Python: 向量矩阵和多维数组(基于NumPy库)

Numpy-矩阵库~python

numpy 矩阵技巧 - 逆时间矩阵的总和

python Numpy库相关矩阵运算