Scipy科学计算库
[tushare网站]
[tushare网站][http://tushare.org/trading.html]
标签(空格分隔): Anaconda
Anaconda常用指令
- 查看虚拟环境 conda info -e
- 进入到某个虚拟环境下
source activate base (OSX/Linux系统)
activate base (win系统) - 查看虚拟环境下所有模块 conda list
- 在当前激活的虚拟环境下安装模块
conda install packagename
pip install packagename - 在当前激活的虚拟环境下删除模块
conda remove packagename
pip uninstall packagename - 退出当前激活的虚拟环境 deactivate
- 创建新的虚拟环境
conda create -n env_name python=2.7/3.6
需保持网络环境畅通 - 删除已存在的虚拟环境
conda remove -n env_name –all
jupyter
- 在某个文件夹目录下启动jupyter:
在某个文件夹目录下敲cmd,进入控制台之后敲jupyter notebook
'''---------------------用Scipy保存并加载mat文件-------------------'''
from scipy import io
import numpy as np
a = np.arange(9).reshape(3,3)
#用scipy中的io模块将数据保存到mat文件中
io.savemat("a.mat",{"test":a})
#用scipy的io模块加载mat文件数据
data = io.loadmat("a.mat")
data #print可以省略
arr2 = data["test"]
arr2 #print可以省略
'''---------------------用Scipy计算随机样本的峰度-------------------'''
from scipy import stats
from matplotlib import pyplot as plt
norm1 = stats.norm.rvs(size=10000)
norm2 = stats.norm.rvs(size=10000)
#检测数据样本的峰度
kurt1,pvalue1 = stats.kurtosistest(norm1)
kurt2,pvalue2 = stats.kurtosistest(norm2)
kurt1,pvalue1
plt.hist(norm1)
kurt2,pvalue2
plt.hist(norm2)
c = stats.norm.rvs(size=100)
#正态性检验:检查数据集服从正态分布的程度。该检验同样有两个返回值,其中第二个返回值为p-value。pvalue>0.05即表示服从正态分布
normalTest,pvalue = stats.normaltest(c)
normalTest,pvalue
plt.hist(c)
'''---------------------Scipy函数-------------------'''
from scipy import stats
import numpy as np
import scipy.stats.stats as st
arrEasy=np.array([[0,2],[2.5,4],[5,6],[7.5,9],[10,13],[12.5,16],[15,19],[17.5,23],[20,27],
[22.5,31],[25,35],[27.5,40],[30,53],[32.5,68],[35,90],[37.5,110],[40,130],
[42.5,148],[45,165],[47.5,182],[50,195],[52.5,208],[55,217],[57.5,226],[60,334],
[62.5,342],[65,349],[67.5,500],[70,511],[72.5,300],[75,200],[77.5,80],[80,20]])
arrDiff=np.array([[0,20],[2.5,30],[5,45],[7.5,70],[10,100],[12.5,135],[15,170],[17.5,205],[20,226],
[22.5,241],[25,251],[27.5,255],[30,256],[32.5,253],[35,249],[37.5,242],[40,234],
[42.5,226],[45,217],[47.5,208],[50,195],[52.5,182],[55,165],[57.5,148],[60,130],
[62.5,110],[65,40],[67.5,30],[70,20],[72.5,5],[75,5],[77.5,0],[80,0]])
# arrEasy1=[]
# for rows in range(len(arrEasy)):
# arrEasy1.append(arrEasy[rows][0])
# print(arrEasy1)
scores = arrEasy[:,0] #获取所有分数
scores
persons = arrEasy[:,1] #获取所有人数
persons
persons.dtype #dtype('float64')
#将persons float64转化为int64
result = persons.astype(np.int64)
result.dtype dtype('int64')
#通过人数将分数数组创建出来
allarrEasy = np.repeat(scores,result)
allarrEasy
#求allarrEasy平均分数
average = np.mean(allarrEasy)
average #57.326993337631635
#求allarrEasy中位数
median = np.median(allarrEasy)
median #60.0
#求allarrEasy众数
print("众数",scores[np.argmax(persons)]) #方法1
print("众数",st.mode(allarrEasy)) ##方法2
#求allarrEasy极差
print("极差:",np.ptp(allarrEasy)) #80.0
#求allarrEasy方差
print("方差:",np.var(allarrEasy))
#求allarrEasy标准差
print("方差:",np.std(allarrEasy))
#求allarrEasy变异系数
print("变异系数:",np.mean(allarrEasy)/allarrEasy.std())
#求偏度
statistic,pvalue = stats.skewtest(allarrEasy)
statistic,pvalue
#求峰度
kurtosis = stats.kurtosis(allarrEasy)
kurtosis
'''---------------------用Scipy检测数据样本的偏度-------------------'''
from scipy import stats
import numpy as np
from matplotlib import pyplot as plt
#用scipy产生一个正太分布随机数组
normal1 = stats.norm.rvs(size=500)
normal2 = stats.norm.rvs(size=500)
#用scipy检测数据样本的偏度
statistic1,pvalue1 = stats.skewtest(normal1)
statistic2,pvalue2 = stats.skewtest(normal2)
#normal1样本的偏度
statistic1,pvalue1
plt.hist(normal1)
#normal2样本的偏度
statistic2,pvalue2
plt.hist(normal2)