运筹系列37:numpy/scipy常用科学计算

参考本文

1. numpy操作

  • arange:对应range
  • tile:重复数组堆叠
  • mgrid:grid神器
  • newaxis:不用reshape,直接添加新列
  • unique:去重
  • +:拥有广播机制。行+列=矩阵;矩阵+元素=不变形状矩阵;
    在这里插入图片描述

在这里插入图片描述

  • *:数组*数组是元素相乘,不是矩阵相乘(用dot)。

  • ==:元素相等

  • array_equal:数组相等;

  • np.exp/log等都是数据操作

  • mask操作:
    在这里插入图片描述

  • tril/triu
    在这里插入图片描述

  • 批量赋值:
    在这里插入图片描述

  • 批量分配
    在这里插入图片描述

  • 批量取值:
    在这里插入图片描述

  • 类型:赋值不会改变类型;astype、around
    下图是自定义数据类型:
    在这里插入图片描述

  • 掩码:numpy.ma,可以保留无效数据继续计算。

  • 多项式:p=np.poly1d([3,2,-1])等价于 p = 3 x 2 + 2 x 1 p=3x^2+2x-1 ,还可以进行求导、求平方根等操作
    在这里插入图片描述

2. scipy:高级科学计算

在这里插入图片描述
一般来说,scipy中有的算法,就不要用numpy了。

scipy会使用fortran的库,可以参考这里
minpack是一个1980年代用fortran编写的库,用于非线性方程组求解、或是方程组残差的least square minimization。
这里有两个基本概念:
Jaccobi矩阵:多个y(联立方程组)对x的一阶偏导矩阵
在这里插入图片描述

注意不要和Hession阵混淆,Hession阵是一个y对x的二阶偏导矩阵。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/kittyzc/article/details/105748837