美文网首页
Numpy中的矩阵运算+聚合操作+arg运算(2019.1.17

Numpy中的矩阵运算+聚合操作+arg运算(2019.1.17

作者: MMatx | 来源:发表于2019-01-19 20:41 被阅读0次

    Numpy中的矩阵运算

    1.矩阵与数值之间的运算,矩阵与数值之间的算术运算,是矩阵里面的元素与数值进行运算


    image.png
    image.png
    image.png

    2.矩阵之间的运算

    image.png
    image.png
    image.png

    numpy.linalg模块包含线性代数的函数。使用这个模块,可以计算逆矩阵、求特征值、解线性方程组以及求解行列式等。

    Numpy中的聚合操作

    Numpy中的聚合操作包括一下
    (1)求和

    #一维
    a=numpy.arange(10)
    numpy.sum(a)
    a.sum() #面向对象写法
    #二维
    x=numpy.arange(20).reshape(4,5)
    numpy.sum(x)  # 求所有元素之和
    x.sum() # 求所有元素之和
    np.sum(X,axis=0) # 求每一列的和 将要被压缩的维度
    np.sum(X,axis=1) # 列被压缩,显示每一行的和
    

    (2)最大最小值

    numpy.max(x)
    numpy.min(x)
    

    (3)所有元素的乘积

    numpy.prod(x)# 所有元素的乘积
    

    (4)平均值,中位数,求第几分位的数值,方差,标准差

    numpy.mean(x) #平均值
    numpy.median(x) #中位数
    numpy.percentile(x,q=75) #求第75%分位的数,数值从小到大排序
    numpy.var(x) # 方差
    numpy.std(x) #标准差
    

    Numpy中的arg运算

    numpy中的arg都是与索引有关的

    import numpy
    x = numpy.random.normal(0,1,100000) # 正态分布 均值 方差 数据个数
    arg1=numpy.argmax(x)  # 返回列表中最大值所在的索引
    arg2=numpy.argmin(x) # 返回列表中最小值所在的索引
    a=numpy.arange(16)
    numpy.random.shuffle(a) # 对a进行乱序操作
    numpy.sort(a) #对a进行排序
    

    二维

    X = numpy.random.randint(10,size=(4,4))
    numpy.sort(X)
    numpy.argsort(x) # 返回索引值 从大到小排序之后,数值的索引值 返回排序后的索引
    #带arg的都是索引
    numpy.partition(x,3) # 标定点
    numpy.argpartition(x,3)
    
    

    Numpy中的比较和fancy_indexing

    1、利用列表代表索引访问列表或者是矩阵
    2、布尔索引,代表这个此元素是否访问
    3、列表/矩阵进行逻辑运算可以返回每个元素是否满足此条件的状态,若是true则为满足,若为false则是不满足
    4、可以利用布尔索引去筛选值

    #!/usr/bin/env python
    # coding: utf-8
    
    # # Numpy中的比较和fancy_indexing
    
    import numpy as np
    
    x = np.arange(16)
    x[3:9:2]
    
    # 要返回2 5 8 位置的元素
    [x[2],x[5],x[8]]
    
    ind =  [3,5,8]
    x[ind]
    
    ind = np.array([[0,2],[1,3]])
    
    x[ind]
    
    X = x.reshape(4,-1)
    
    row = np.array([0,1,2])
    col = np.array([1,2,3])
    X[row,col]
    
    X[0,col]
    
    X[:2,col]
    
    # bool 索引
    col = [True,False,True,True] # false 是不访问的数据 
    X[1:3,col]
    
    x < 3 
    
    x > 3
    
    x ==3
    2 * x == 24-4*x
    
    X < 6
    
    np.sum(x<=3)
    np.count_nonzero(x<=3)
    np.any(x == 0)
    np.any(x<0)
    np.all(x>=0)
    np.all(x>0)
    np.sum(X%2 ==0)
    np.sum(X%2==0,axis=0) # 看每一列有多少个偶数
    np.sum(X%2==0,axis=1) # 看每一行有多少个偶数
    np.sum(X>0,axis=1) # 看每一行有多少大于0的
    np.all(X>0,axis=1)
    np.sum((x>3)&(x<10))
    np.sum((x%2==0)|(x>10))
    x<5
    x[x<5] # 利用布尔索引去筛选值
    x[x%2==0]
    X[X[:,3]%3==0,:]
    X[:,3]
    

    相关文章

      网友评论

          本文标题:Numpy中的矩阵运算+聚合操作+arg运算(2019.1.17

          本文链接:https://www.haomeiwen.com/subject/kjizdqtx.html