今日Python代码_Scipy

目录

#系数矩阵

#矩阵运算

 #线性方程组求解

 #非线性方程组求解

 #函数最值

#图像处理

#加载图片

 #旋转图像45度

 #图像滤波

 over


#系数矩阵


#定义:当矩阵中的数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律,这样的矩阵就成为稀疏矩阵。

 

from scipy.sparse import *
import numpy as np
#使用一个已有的矩阵、数组或列表中创建新矩阵
A=coo_matrix([[1,2,0],[0,0,3],[4,0,5]])
print(A)
#转化为普通矩阵
C=A.todense()
print(C)
#传入一个(data,(row,col))的元组来构建稀疏矩阵
I=np.array([0,3,1,0])
J=np.array([0,3,1,2])
data=np.array([4,5,7,9])
A=coo_matrix((data,(I,J)),shape=(4,4))
#矩阵中数据为data=[4,5,7,9],说明第1个数据是4,在第0行第0列,
print(A)

#矩阵运算

from scipy import linalg
import numpy as np
A=np.matrix('[1,2;3,4]')
print(A)
print(A.T)#矩阵的转置
print(A.I)#矩阵的逆
print(linalg.inv(A))#矩阵的逆

 #线性方程组求解

from scipy import linalg
import numpy as np
a=np.array([[1,3,5],[2,5,-1],[2,4,7]])
b=np.array([10,6,4])
x=linalg.solve(a,b)
print(x)

 #非线性方程组求解

from scipy.optimize import fsolve
from math import sin
def f(x):
    x0,x1,x2=x.tolist()
    return [5*x1+3,4*x0*xo-2*sin(x1*x2),x1*x2-1.5]
#f计算方程组的误差,[1,1,1]是未知数的初始值
result=fsolve(f,[1,1,1])
print(result)
print(f(result))

 #函数最值

from scipy.optimize import minimize
import numpy as np
#计算1/x+x的最小值
def fun(args):
    a=args
    v=lambda x:a/x[0]+x[0]
    return v
if __name__ =="_main_":
    args=(1)#a
    x0=np.asarray((2))#初始猜测值
    res=minimize(fun(args),x0,method='SLSQP')
    print(res.fun)
    print(res.success)
    print(res.x)

 


#图像处理


#加载图片

from scipy import ndimage
import matplotlib.image as mpimg
import matplotlib.pyplot as plt
flower=mpimg.imread('d://flower.jpg')
plt.imshow(flower)
plt.title('original')

 #旋转图像45度

rotate_flower=ndimage.rotate(flower,45)
plt.imshow(rotate_flower)
plt.title('rotate_flower')

 #图像滤波

flower1=ndimage.gaussion_filter(flower,sigma=3)
plt.imshow(flower1)
plt.show()#显示图片
#边缘检测
import scipy.ndimage as nd
import numpy as np
im=np.zeros((256,256))
im[64:-64,64:-64]=1
im[90:-90,90:-90]=2
im=nd.gaussion_filter(im,8)
import matplotlib.pyplot as plt
plt.imshow(im)
plt.show()

 over

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苑苑圆圆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值