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)