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)

  

posted on 2022-04-15 10:54  xiwei-ff  阅读(33)  评论(0编辑  收藏  举报