python的numpy模块学习笔记

python的numpy模块学习笔记

如果你的Python还没有安装相关模块的话,那就建议看看我的小白教程哦!Python的Anaconda,Spyder的安装
安装好了之后,我们就可以开始啦!

创建⼀个矩阵

import numpy as np
a = np.array([[0,0],[0,1],[3,0]])
>>>[[0 0]
[0 1]
[3 0]]

⽣成随机数

import numpy as np
np.random.seed(0)    #设置随机数种⼦
np.random.random(3)   #随机⽣成3个浮点数
>>>array([0.5488135 , 0.71518937, 0.60276338])
np.random.randint(0,11,3)    #从0到10随机⽣成3个整数
>>>array([3, 7, 9])
np.random.normal(0.0,1.0,3)    #从平均值0且标准差1的正态分布中随机⽣成3个数
>>>array([ 0.95008842, -0.15135721, -0.10321885])

矩阵的计算

import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
b = np.array([[1,1,1],[1,1,1],[1,1,1]])
np.linalg.matrix_rank(a)   #矩阵的秩
>>>2
np.linalg.det(a)    #矩阵的⾏列式
>>>0
a.trace() #矩阵的迹
>>>15
c,d = np.linalg.eig(a)
c   #矩阵的特征值
>>>array([ 1.61168440e+01, -1.11684397e+00, -4.22209278e-16])
d   #矩阵的特征向量
>>> array([[-0.23197069, -0.78583024, 0.40824829],
       [-0.52532209, -0.08675134, -0.81649658],
       [-0.8186735 , 0.61232756, 0.40824829]])
np.add(a,b) #将两个矩阵相加 。也可以简单使⽤+,例如a+b
>>>array([ [ 2, 3, 4],
      [ 5, 6, 7],
      [ 8, 9, 10]])
np.subtract(a,b)    #将两个矩阵相减(a-b)
>>>array([ [0, 1, 2],
        [3, 4, 5],
        [6, 7, 8]])
np.dot(a,b)    #将两个矩阵相乘 (a@b)
>>>array([ [ 6, 6, 6],
        [15, 15, 15],
        [24, 24, 24]])
c = np.array([[1,2],[3,4]])
np.linalg.inv(c)
>>>array([ [-2. , 1. ],
        [ 1.5, -0.5]])

矩阵变形

import numpy as np
a = np.array([0,0,0,1,3,0])
a.reshape(2,3)   #对矩阵的⾏数列数进⾏改变 ,但要保证最终个数不变,即矩阵的size 不变
>>>[[0, 0, 0],
     [1, 3, 0]]
a.T #对矩阵进⾏转置
>>>[[0, 0, 3],
     [0, 1, 0]]

计算平均值,⽅差,标准差

import numpy as np
a = np.array([[0, 1], [0, 1], [3, 0]])
np.mean(a)   #返回矩阵的平均值(所有数据和/数据个数)
>>>0.6666666666666666
np.mean(a[1]) #返回a矩阵的第⼆⾏的平均值
>>> 0.5
np.var(a) #⽅差
>>>1.1388888888888888
np.std(a) #标准差
>>>1.0671873729054748

矩阵的最⼤值最⼩值

import numpy as np
a = np.array([[0, 1], [0, 1], [3, 0]])
np.max(a)
>>>3
np.max(a[1])
>>>1
np.min(a)
>>> 0
np.max(a,axis=0) #找出每列的最⼤值 ,axis=1,找出每⾏的最⼤值
>>> array([3, 1])

对矩阵内元素使⽤函数

import numpy as np
a = np.array([[0, 1], [0, 1], [3, 0]])
add_100 = lambda x: x+100
vectorize_add_100 = np.vectorize(add_100)
vectorize_add_100(a)
>>>[[100, 100],
     [100, 101],
     [103, 100]] #即对矩阵内的每⼀个数据或者特定(vectorize_add_100(a[1]) ,即会对a矩阵的第⼆⾏使⽤函数)的数据使⽤函数,但是并不会改变原来矩阵的内容,a 矩 阵的内容并未改变。

矩阵的属性

Import numpy as np
a = np.array([[0,0],[0,1],[3,0]])
a.shape
>>>32#即输出矩阵的⾏数和列数
a.size
>>>6 #即输出矩阵的个数 ,当使⽤矩阵压缩之后,只会显示压缩后的个数,即b.size 输出将会是2,压缩之后只有两个数据了
a.ndim
>>>2 #输出矩阵的维数 ,压缩不影响矩阵的维数

创建⼀个压缩矩阵

import numpy as np
from scipy import sparse
a = np.array([[0,0],[0,1],[3,0]])
b = sparse.csr_matrix(a)
print(b)
>>>(1, 1) 1
   (2, 0) 3 #前⾯代表坐标,后⾯代表数值,当0值较多时使⽤矩阵压缩能⼤量减少存储空间

更多详情可见官网https://numpy.org

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

布丁出击

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值