numpy矩阵与通用函数

矩阵

创建矩阵

import numpy as np

if __name__ == '__main__':
    # 使用mat函数创建矩阵
    matr1 = np.mat("1 2 3;4 5 6;7 8 9")
    print(matr1)
    print("shape:", matr1.shape)
    print("------------------------------")
    # 使用matrix函数创建矩阵
    matr2 = np.matrix([[123], [456], [789]])
    print(matr2)
    print("shape:", matr2.shape)
    print("------------------------------")
    # 使用bmat函数创建矩阵
    bmat = np.bmat("matr1 matr2; matr1 matr2")
    print(bmat)
    print("shape:", bmat.shape)

运行结果:
在这里插入图片描述

矩阵运算

import numpy as np

if __name__ == '__main__':
    matr1 = np.mat("1 2 3;4 5 6;7 8 9")
    matr2 = np.matrix([[123], [456], [789]])
    # 矩阵不数相乘
    print(matr1 * 3)
    print("-------------------")
    # 矩阵相加减
    print(matr1 + matr2)
    print("-------------------")
    # 矩阵相乘
    print(matr1 * matr2)
    print("-------------------")
    # 矩阵对应元素相乘
    print(np.multiply(matr1, matr2))
    print("-------------------")

运行结果:
在这里插入图片描述

线性代数

Numpy数组间的运算只是相对元素间的运算。可以用numpy.dot和numpy.transpose迚行矩阵乘法运算和矩阵转置。优点是避免对数据的遍历。
解方程组:
在这里插入图片描述

import numpy as np

if __name__ == '__main__':
    A = np.matrix([[3, 6, 5], [1, -3, 2], [5, -1, 4]])
    B = np.matrix([[12], [-2], [10]])
    x = A ** (-1) * B
    print(x)

运行结果:
在这里插入图片描述

ufunc函数

全称通用函数(universal function),是一种能够对数组中所有元素迚行操作的函数。

  • 四则运算:加(+)、减(-)、乘(*)、除(/)、幂(**)。数组间的四则运算表示对每个数组中的元素分别迚行四则运算,所以形状必须相同。
  • 比较运算:>、<、==、>=、<=、!=。比较运算返回的结果是一个布尔数组,每个元素为每个数组对应元素的比较结果。
  • 逻辑运算:np.any函数表示逻辑“or”,np.all函数表示逻辑“and”。运算结果返回布尔值。

ufunc函数的广播机制

广播(broadcasting)是指不同形状的数组之间执行算术运算的斱式。需要遵循4个原则。

  1. 让所有输入数组都向其中shape最长的数组看齐,shape中不足的部分都通过在前面加1补齐。
  2. 输入数组的shape是输入数组shape的各个轴上的最大值。
  3. 如果输入数组的某个轴和输出数组的对应轴的长度相同或者其长度为1时,这个数组能够用来计算,否则出错。
  4. 当输入数组的某个轴的长度为1时,沿着此轴运算时都用此轴上的第一组值。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值