from scipy import io as spio
spio.savemat("test.mat", {'a':a})
data = spio.loadmat("test.mat")
访问值:data[‘a’]–>相当于map
4. 读取图片文件
导包:from scipy import misc
读取:data = misc.imread("123.png")
[注1]:与matplotlib中plt.imread('fname.png')
类似
[注2]:执行misc.imread时可能提醒不存在这个模块,那就安装pillow的包
res = linalg.det(a)
res = linalg.inv(a)
若是矩阵不可逆,则会抛异常LinAlgError: singular matrixu,s,v = linalg.svd(a)
[注1]:s为a的特征值(一维),降序排列,
[注2]:a = usv’(需要将s转换一下才能相乘)
t = np.diag(s)
print u.dot(t).dot(v)
def f(x):
return x**2-2*x
initial_x = 0
optimize.fmin_bfgs(f,initial_x)
[注]:initial_x为初始点(此方法可能会得到局部最小值)
curve_fit
#产生数据
def f(x):
return x**2 + 10*np.sin(x)
xdata = np.linspace(-10, 10, num=20)
ydata = f(xdata)+np.random.randn(xdata.size)
plt.scatter(xdata, ydata, linewidths=3.0,
edgecolors="red")
#plt.show()
#拟合
def f2(x,a,b):
return a*x**2 + b*np.sin(x)
guess = [2,2]
params, params_covariance = optimize.curve_fit(f2, xdata, ydata, guess)
#画出拟合的曲线
x1 = np.linspace(-10,10,256)
y1 = f2(x1,params[0],params[1])
plt.plot(x1,y1)
plt.show()
a = np.random.normal(0, 1, size=10)
b = np.random.normal(1, 1, size=10)
print stats.ttest_ind(a, b)
输出:(-2.6694785119868358, 0.015631342180817954)
后面的是概率p: 两个过程相同的概率。如果其值接近1,那么两个过程几乎可以确定是相同的,如果其值接近0,那么它们很可能拥有不同的均值。#产生一些数据
x = np.linspace(0, 1, 10)
y = np.sin(2 * np.pi * x)
computed_time = np.linspace(0, 1, 50)
#线性插值
linear_interp = interp1d(x, y)
linear_results = linear_interp(computed_time)
#三次方插值
cubic_interp = interp1d(x, y, kind='cubic')
cubic_results = cubic_interp(computed_time)
#作图
plt.plot(x, y, 'o', ms=6, label='y')
plt.plot(computed_time, linear_results, label='linear interp')
plt.plot(computed_time, cubic_results, label='cubic interp')
plt.legend()
plt.show()
from scipy.optimize import fsolve
def func(x):
x0,x1,x2 = x.tolist()
return [5*x1-25,5*x0*x0-x1*x2,x2*x0-27]
initial_x = [1,1,1]
result = fsolve(func, initial_x)
print result