开发者社区 问答 正文

python怎么计算矩阵

python怎么计算矩阵

展开
收起
云计算小粉 2018-05-10 20:09:59 1715 分享 版权
1 条回答
写回答
取消 提交回答
  • 阿里云ping https://ping.gaomeluo.com/aliyun/

    coding=gbk #防止出现中文编译错误

    import numpy as np
    list_x=[[1,1],[92,2]] #列表
    array_x=np.array(list_x) #将列表转化成二维数组
    mat_x=np.mat(list_x) #将列表转化成矩阵
    mat_x_t=mat_x.T #矩阵转置
    mat_x_p=mat_x.I #矩阵求逆
    sum_r=mat_x.sum(axis=0) #矩阵每行求和
    sum_c=mat_x.sum(axis=1) #矩阵每列求和
    sum_=np.sum(mat_x[:,:]) #矩阵求和,注意np.sum 不同于sum

    max_=np.max(mat_x) #计算矩阵中所有元素的最大值,这里得到的结果是一个数值
    max_c2=np.max(mat_x[:,1]) #计算第二列的最大值,注意np.max得到的是一个数值,max得到的是一个1*1的矩阵
    max_r2=mat_x[1,:].max() #计算第二行的最大值,这里得到的是一个一个数值

    max_c=np.max(mat_x,0) #计算所有列的最大值,这里使用的是numpy中的max函数
    max_r=np.max(mat_x,1) #计算所有行的最大值,这里得到是一个矩阵

    argmax_c=np.argmax(mat_x,0) #计算所有列的最大值对应在该列中的索引
    argmax_r2=np.argmax(mat_x[1,:]) #计算第二行中最大值对应在该行的索引

    vstack_x_xt=np.vstack((mat_x,mat_x_t)) #按列合并,即增加行数
    hstack_x_xt=np.hstack((mat_x,mat_x_t)) #按行合并,即行数不变,扩展列数

    dimension=mat_x.ndim;
    m,n=mat_x.shape;
    size=mat_x.size #元素总个数
    type=mat_x.dtype #元素的类型

    print("list_x=",list_x)
    print("array_x=",array_x)
    print("mat_x=",mat_x)
    print("mat_x_t=",mat_x_t)
    print("mat_x_p=",mat_x_p)
    print("xx_p=",mat_xmat_x_p) #矩阵相乘
    print("x.*x=",np.multiply(mat_x,mat_x)) #矩阵点乘
    print("sum_r=",sum_r)
    print("sum_c=",sum_c)
    print("sum_=",sum_)

    print("max_=",max_)
    print("max_c2=",max_c2)
    print("max_r2=",max_r2)
    print("max_c=",max_c)
    print("max_r=",max_r)
    print("argmax_c=",argmax_c)
    print("argmax_r2=",argmax_r2)

    print("vstack_x_xt=",vstack_x_xt)
    print("vstack_x_xt=",vstack_x_xt)

    print("dimension=",dimension)
    print("m,n=",m,n)
    print("size=",size)
    print("type=",type)

    以下为计算结果

    list_x= [[1, 1], [92, 2]]
    array_x= [[ 1 1]
    [92 2]]
    mat_x= [[ 1 1]
    [92 2]]
    mat_x_t= [[ 1 92]
    [ 1 2]]
    mat_x_p= [[-0.02222222 0.01111111]
    [ 1.02222222 -0.01111111]]
    x*x_p= [[ 1. 0.]
    [ 0. 1.]]
    x.*x= [[ 1 1]
    [8464 4]]
    sum_r= [[93 3]]
    sum_c= [[ 2]
    [94]]
    sum_= 96
    max_= 92
    max_c2= 2
    max_r2= 92
    max_c= [[92 2]]
    max_r= [[ 1]
    [92]]
    argmax_c= [[1 1]]
    argmax_r2= 0
    vstack_x_xt= [[ 1 1]
    [92 2]
    [ 1 92]
    [ 1 2]]
    vstack_x_xt= [[ 1 1]
    [92 2]
    [ 1 92]
    [ 1 2]]
    dimension= 2
    m,n= 2 2
    size= 4
    type= int32

    2019-07-17 22:19:59
    赞同 展开评论
问答分类:
问答地址: