Scipy科学计算库

时间:2023-01-09 22:47:12

Scipy科学计算库

[tushare网站]
[tushare网站][http://tushare.org/trading.html]
标签(空格分隔): Anaconda

Anaconda常用指令

  1. 查看虚拟环境 conda info -e
  2. 进入到某个虚拟环境下
    source activate base (OSX/Linux系统)
    activate base (win系统)
  3. 查看虚拟环境下所有模块 conda list
  4. 在当前激活的虚拟环境下安装模块
    conda install packagename
    pip install packagename
  5. 在当前激活的虚拟环境下删除模块
    conda remove packagename
    pip uninstall packagename
  6. 退出当前激活的虚拟环境 deactivate
  7. 创建新的虚拟环境
    conda create -n env_name python=2.7/3.6
    需保持网络环境畅通
  8. 删除已存在的虚拟环境
    conda remove -n env_name –all

jupyter

  1. 在某个文件夹目录下启动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)