#!/usr/bin/python
#-*- coding:utf-8 -*-
import numpy as np
import matplotlib
from matplotlib import cm
import time
from scipy.optimize import leastsq
from matplotlib import cm
import scipy.optimize as opt
import scipy
import matplotlib.pyplot as plt
from scipy.stats import norm,poisson
#from mpl_toolkits.mplot3d import Axes3D
from scipy.interpolate import BarycentricInterpolator
from scipy.interpolate import CubicSpline
import math
from numpy import dtype
from sys import maxsize
'''
#numpy
a = np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])
a.shape = 4,3
print type(a)
print a
a.shape =2,-1 #-1表示自动算有多少列
print a
b=a.reshape(3,4) #rashape 不改变原来的列表只返回原数据的一个视图,如果改变b中的一个数值a中的数值也会相应改变
print a
print b
a = np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]],dtype=np.float)
print a
print a.astype(np.int) #也只返回一个视图
print a
b = np.arange(1,9,2) #不包含9
print b
b=np.arange(5)
print b
b = np.linspace(1,9,5,dtype=np.int) #等差数列
print b
b = np.logspace(0,10,11,base=2) #2的零次方开始2的十次方结束一共有11个数的等比数列
print b
s = 'abcd'
g = np.fromstring(s,dtype=np.int8) #返回每一个字母的ascll码列表
print g
a=np.arange(10)
print a[3:6]
print a[:6]
print a[3:]
print a[::-1]#更换顺序
a = np.random.rand(10)
print a
print a>0.5
print a[a>0.5]
#二维数组
a = np.arange(0,60,10).reshape(-1,1)+np.arange(6) #列向量和行向量相加
print a
print a[2][1]
print a[(2,3),(2,3)] #获取第二行第二个和第三行第三个从零开始数
print a[2:4] #获取第二行到第三行数据
print a[2,(3,4)] #获取第二行第三四个元素
'''
'''
#画正态分布图
u = 0
sigma = 1
x = np.linspace(-5,5,50)
y = np.exp(-(x-u)**2/2*(sigma**2))/(math.sqrt(2*math.pi))
plt.title('guass')
plt.plot(x,y,'r--',x,y,'go',linewidth=2,markersize=4,label='fft') #markerzise :点的大小
plt.legend(loc='upper right')
plt.show()
'''
#logistic函数
'''
x = np.linspace(-5,5,50)
y = 1/(np.exp(-x)+1)
plt.plot(x,y,'b-',label='test1')
plt.plot(x,y,'ro',label='test2') #ro表示红色的圈,b-表示蓝色的线,b--蓝色的虚线.
plt.legend(loc='upper right')
plt.show()
plt.show()
'''
#胸型线