sinpy and numpy
import numpy as np # np.array(object,dtype=None,copy=True,order=None,subok=False,ndmin=0) a = np.array([1,2,3]) print(a) #多于一个维度 import numpy as np a = np.array([[1,2],[3,4]]) print(a) #最小维度ndmin import numpy as np a = np.array([1,2,3],ndmin=3) print(a) #dtype参数 import numpy as np a = np.array([1,2,3],dtype=complex) print(a) import numpy as np a = np.array([[1,2,3],[4,5,6]]) print('a:{}'.format(a)) # print(a.flags) import numpy as np a = np.empty([4,5],dtype=float,order='C') print(a) import scipy print(scipy.__version__) from scipy import constants #一英亩等于多少平方米 print(constants.acre) #常量模块学习 from scipy import constants print(constants.pi) print('黄金分割比例:{}'.format(constants.golden)) #使用dir()函数查看constants模块包含的常量: print('constants模块所包含的常量:', end='') print(dir(constants)) print('--------------------------------------------------------------------------------------------------------------------------------') #scipy优化器---------->>>>完成优化问题,如查找函数的最小值或方程的根 #numby可以完成查找线性方程的根,但是非线性不可以,像x+cos(x) from scipy.optimize import root,minimize from math import cos def eqn(x): return x+cos(x) myroot = root(eqn,0) print(myroot.x) #查看更多信息 print('查看更多信息:\n{}'.format(myroot)) print('-------------------------------------------------------------------------------------------------------------------------') #最小化函数 mymin = minimize(eqn,0,method='BFGS') print(mymin) #稀疏矩阵(矩阵中绝大多数数值为0) from scipy.sparse import csr_matrix #压缩稀疏矩阵csr:按行/csc(compressed sparse cloumn):按列 import numpy as np arr = np.array([0,0,0,0,0,1,1,0,2]) print(csr_matrix(arr)) print('使用data属性查看数据存储信息为:{}'.format(csr_matrix(arr).data)) #计算非零元总数 print(csr_matrix(arr).count_nonzero()) #使用eliminate_zeros()方法删除矩阵中的0元素 arr1 = csr_matrix(arr) arr1.eliminate_zeros() print(arr1) #转换使用csc使用tocsc()方法 print(csr_matrix(arr).tocsc()) #scipy图结构,算法学中最强大的框架之一 ''' 邻接矩阵:用一个一维数组存储图中所有结点,有一个二维数组存储顶点间的关系(边户或者弧)的数据,这个二维矩%who就是邻接矩阵 ''' import numpy as np from scipy.sparse.csgraph import connected_components,dijkstra from scipy.sparse import csr_matrix arr = np.array([ [0,1,2], [1,0,0], [2,0,0] ]) newarr = csr_matrix(arr) print(newarr) #connected_components()查看所有链接组件 print(connected_components(newarr)) ''' #dijstra()最短路径计算方法 参数: return_predecessors:布尔值,设置true,遍历所有路径;反之。。。 indices:元素索引,返回该元素的所有路径 limit:路径的大权重 ''' print(dijkstra(newarr,return_predecessors=True, indices=1)) from scipy.sparse import csr_matrix from scipy.sparse.csgraph import dijkstra graph = [ [0, 1, 2, 0], [0, 0, 0, 1], [0, 0, 0, 3], [0, 0, 0, 0] ] graph = csr_matrix(graph) print(graph) dist_matrix, predecessors = dijkstra(csgraph=graph, directed=False, indices=0, return_predecessors=True) print(dist_matrix,predecessors)