• 【数据分析&数据挖掘】矩阵的运算


     1 import numpy as np
     2 
     3 # 创建矩阵
     4 m1 = np.mat([[1, 2], [1, 2]])
     5 print("m1:
    ", m1)
     6 print("m1的类型:
    ", type(m1))
     7 
     8 # 矩阵与数的相乘
     9 m2 = 2 * m1
    10 print("m2:
    ", m2)
    11 print("m2的类型:
    ", type(m2))
    12 
    13 # 矩阵的相加,相减 ——>同型矩阵
    14 m2 = np.mat([[0, 1], [0, 1]])
    15 print("m2:
    ", m2)
    16 print("m2的类型:
    ", type(m2))
    17 
    18 res1 = m1 + m2
    19 res2 = m1 - m2
    20 print("相加/相减的结果:
    ", res1, "
    ", res2)
    21 
    22 # 矩阵与矩阵的相乘
    23 # 左矩阵的列 = 右矩阵的行
    24 res = m1 * m2
    25 res = np.matmul(m1, m2)
    26 res = np.dot(m1, m2)
    27 print("矩阵相乘的结果:
    ", res)
    28 
    29 # 矩阵与数组相乘,会自动将数组转化成矩阵再相乘
    30 arr = np.array([[0, 1],[0, 1]])
    31 res = m1 * arr # 有可能在某些情况下报错,可以用,不推荐
    32 res = np.matmul(m1, arr)
    33 res = np.dot(m1, arr)
    34 
    35 # 矩阵与列表相乘,会自动将列表转化成矩阵再相乘
    36 li = [[0, 1], [0, 1]]
    37 res = m1 * li  # 有可能在某些情况下报错,可以用,不推荐
    38 res = np.matmul(m1, li)
    39 res = np.dot(m1, li)
    40 
    41 print("相乘结果:
    ", res)
    42 
    43 # 如果在列表相乘的时候使用矩阵相乘的API,那么会先将列表转化为矩阵再相乘
    44 l1 = [[1, 2], [1, 2]]
    45 l2 = [[0, 1], [0, 1]]
    46 # res = l1 * l2  # 不可以乘
    47 res = np.matmul(l1, l2)
    48 res = np.dot(l1, l2)
    49 print("相乘结果:
    ", res)
    50 
    51 # 还有一种相乘方式——对应位置元素相乘——同型相乘
    52 res = np.multiply(m1, m2)
    53 print("矩阵的对应位置元素相乘:
    ", res)
    54 
    55 arr1 = np.array([[1, 2],[1, 2]])
    56 arr2 = np.array([[1, 2],[1, 2]])
    57 res = np.multiply(arr1, arr2)
    58 print("数组的对应位置元素相乘:
    ", res)
    59 l1 = [[1, 2],[1, 2]]
    60 l2 = [[1, 2],[1, 2]]
    61 res = np.multiply(l1, l2)
    62 print("列表的对应位置元素相乘:
    ", res)
    63 
    64 # 矩阵的属性
    65 m1 = np.mat([[1, 2],[1, 2]])
    66 m1 = np.mat([[1, 2, 3], [1, 2, 4]])
    67 print("m1:
    ", m1)
    68 print("m1的类型:
    ", type(m1))
    69 print("~"*60)
    70 print("m1的转置:
    ", m1.T)
    71 print("m1的逆矩阵:
    ", m1.I) # 矩阵必须有逆矩阵才能用
    72 print("m1矩阵的共轭转置:
    ", m1.H)
    73 
    74 # 矩阵的视图就是数组 ——可以利用视图将矩阵转化为数组
    75 print("m1矩阵的视图:
    ", m1.A)
    76 print("m1矩阵的视图的类型:
    ",type(m1.A))
  • 相关阅读:
    [To be translated] Nova:libvirt image 的生命周期
    Neutron 理解(5):Neutron 是如何向 Nova 虚机分配固定IP地址的 (How Neutron Allocates Fixed IPs to Nova Instance)
    Cinder 调试
    SSH 无密码访问其它机器 和 Windows 上 putty 无密码访问 Linux 机器
    Hadoop 数据库
    Hadoop 分布式文件系统
    C++ 在继承中虚函数、纯虚函数、普通函数,三者的区别
    Google Scholar 论文参考文献的自动生成
    Linux shell ${}简单用法
    C/C++ 获取目录下的文件列表信息
  • 原文地址:https://www.cnblogs.com/Tree0108/p/12115455.html
Copyright © 2020-2023  润新知