最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

深入淺析Python科學(xué)計(jì)算庫(kù)Scipy及安裝步驟

 更新時(shí)間:2019年10月12日 14:31:22   作者:SongpingWang  
這篇文章主要介紹了Python科學(xué)計(jì)算庫(kù)—Scipy的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

一、Scipy 入門(mén)

1.1、Scipy 簡(jiǎn)介及安裝

官網(wǎng):http://www.scipy.org/SciPy

安裝:在C:\Python27\Scripts下打開(kāi)cmd執(zhí)行:

執(zhí)行:pip install scipy

1.2、安裝Anaconda及環(huán)境搭建(舉例演示)

創(chuàng)建環(huán)境:conda create -n env_name python=3.6

示例:   conda create -n Py_36 python=3.6  #創(chuàng)建名為Py_367的環(huán)境

列出所有環(huán)境:conda info -e

進(jìn)入環(huán)境:   source activate Py_36  (OSX/LINUX系統(tǒng))

            activate Py_36          (windows系統(tǒng))

1.3、jupyter 安裝

jupyter簡(jiǎn)介:jupyter(Jupyter Notebook)是一個(gè)交互式筆記本

            支持運(yùn)行40多種編程語(yǔ)言

            數(shù)據(jù)清理和轉(zhuǎn)換,數(shù)值模擬,統(tǒng)計(jì)建模,機(jī)器學(xué)習(xí)等

jupyter 安裝:conda install jupyter notebook

啟動(dòng) jupyter:激活相應(yīng)環(huán)境

在控制臺(tái)執(zhí)行 :jupyter notebook

notebook服務(wù)器運(yùn)行地址:http://localhost:8888   

                新建(notebook,文本文件,文件夾)

關(guān)閉notebook:ctrl+c執(zhí)行兩次

jupyter notebook 使用:

    快捷鍵:shift+Enter     運(yùn)行本單元,選中下個(gè)單元

           Ctrl+Enter      運(yùn)行本單元,在其下方插入新單元
            Y              單元進(jìn)入代碼狀態(tài)
            M              單元進(jìn)入markdown狀態(tài)
            A              在上方插入新單元
            B              在下方插入新單元
            X              剪切選中單元
            Shift+V        在上方粘貼單元      

1.4、scipy的'hello word'

需求:將一個(gè)多維數(shù)組保存a.mat文件,后加載該mat文件,獲取內(nèi)容并打印

步驟1:導(dǎo)入scipy需要的模塊

    from scipy import io    #(需要使用的模塊)

步驟2:利用savemat保存數(shù)據(jù)

  io.savemat(file_name,mdict)
  io.savemat('a.mat',{''array:a})


步驟3:利用 loadmat載入數(shù)據(jù)

  io.loadmat(file_name)
  data = io.loadmat('a.mat')

舉例1:

from scipy import io    #導(dǎo)入io
import numpy as np    #導(dǎo)入numpy并命名為np 
arr = np.array([1,2,3,4,5,6])
io.savemat('test.mat',{'arr1':arr})
loadArr=io.loadmat('test.mat')

舉例2

from matplotlib import pyplot as plt
from scipy import io
import numpy as np
matrix1 = np.arange(1,10).reshape(3,3)   #創(chuàng)建矩陣
io.savemat("matrix1.mat", {"array": matrix1}) #保存矩陣文件
data=io.loadmat('matrix1.mat')     #讀取矩陣文件
print (data["array"])       #輸出矩陣

p1 = np.random.normal(size = 10000) #新建隨機(jī)數(shù)
plt.hist(p1)       #繪制柱形圖
plt.show()       #顯示

二、利用Scipy實(shí)現(xiàn)統(tǒng)計(jì)功能

需求:用Scipy的scipy.stats中的統(tǒng)計(jì)函數(shù)分析隨機(jī)數(shù)
stats提供了產(chǎn)生連續(xù)性分布的函數(shù)
均勻分布(uniform)
                x=stats.uniform.rvs(size = 20) 生成20個(gè)[0,1]均勻分布隨機(jī)數(shù)
-正態(tài)分布(norm)
                x=stats.norm.rvs(size = 20) 生成20個(gè)正態(tài)分布隨機(jī)數(shù)
-貝塔分布(beta)
                x=stats.beta.rvs(size=20,a=3,b=4)生成20個(gè)服從參數(shù)a=3,b=4貝塔分布隨機(jī)數(shù)
-離散分布
-伯努利分布(Bernoulli)
-幾何分布(geom)
-泊松分布(poisson)
x=stats.poisson.rvs(0.6,loc=0,size = 20)生成20個(gè)服從泊松分布隨機(jī)數(shù)

三、計(jì)算隨機(jī)數(shù)均值和標(biāo)準(zhǔn)差

stats.norm.fit :利用正態(tài)分布去擬合生成的數(shù)據(jù),得到其均值和標(biāo)準(zhǔn)差

四、計(jì)算隨機(jī)數(shù)的偏度

1.概念:
                偏度(skewness)描述的是概率分布的偏度(非對(duì)稱(chēng))程度。
                有兩個(gè)返回值,第二個(gè)為p-value,即數(shù)據(jù)集服從正態(tài)分布的概率(0~1)

2 利用 stats.skewtest()計(jì)算偏度

五、計(jì)算隨機(jī)數(shù)的峰度

1 概念:峰度(kurtosis)-描述的是概率分布曲線陡峭程度
2 利用 stats.kurtosis() 計(jì)算峰度
3 正態(tài)分布峰度值為3,excess_k為0
              低闊峰(platykurtic) 相對(duì)于正態(tài)分布來(lái)說(shuō)更扁平 excess_k<0
              高狹峰(leptokurtic) 相對(duì)于正態(tài)分布來(lái)說(shuō)更陡峭 excess_k>0

示例:(../Scipy/Test01/test1)

import numpy as np
from scipy import stats
import matplotlib.pyplot as plt

arr = stats.norm.rvs(size=900)
(mean,std) = stats.norm.fit(arr)
print('平均值',mean)  #mean平均值
print('std標(biāo)準(zhǔn)差',std)  #std標(biāo)準(zhǔn)差
(skewness,pvalue1) = stats.skewtest(arr)
print('偏度值') 
print(skewness)
print('符合正態(tài)分布數(shù)據(jù)的概率為')
print(pvalue1)
(Kurtosistest,pvalue2) = stats.kurtosistest(arr)
print('Kurtosistest',Kurtosistest) #峰度
print('pvalue2',pvalue2)
(Normltest,pvalue3) = stats.normaltest(arr)
print('Normltest',Normltest)   #服從正太分布度
print('pvalue3',pvalue3)
num = stats.scoreatpercentile(arr,95) #某一百分比處的數(shù)值
print('在95%處的數(shù)值:')    #某一百分比處的數(shù)值
print num
indexPercent = stats.percentileofscore(arr,1) #某一數(shù)值處的百分比
print ('在數(shù)值1處的百分比:')     #某一數(shù)值處的百分比
print indexPercent
plt.hist(arr) #設(shè)置直方圖
plt.show()  #顯示圖

六、正態(tài)分布程度檢驗(yàn)

1 正態(tài)性檢驗(yàn)(normality test),同樣返回兩個(gè)值,第二個(gè)返回p-values
2 利用 檢驗(yàn)      stats.normaltest()
        一般情況     pvalue>0.05                表示服從正態(tài)分布

七、計(jì)算數(shù)據(jù)所在區(qū)域中某一百分比處的數(shù)值

1 利用scoreatpercentile 計(jì)算在某一百分比位置的數(shù)值
                格式:scoreatpercentile (數(shù)據(jù)集、百分比)
                                   stats.scoreatpercentile(name_arr,percent)
2 示例:求出95%所在位置的數(shù)值

              

 num = stats.scoreatpercentile(arr,95) 
    print num

八、從某數(shù)值出發(fā)找到對(duì)應(yīng)的百分比

利用percentileofscore計(jì)算在某數(shù)值對(duì)應(yīng)的百分比
                格式:percentileofscore(數(shù)據(jù)集,數(shù)值)
                示例:indexPercent = stats.percentileofscore(arr,1)

九、直方圖顯示

import matplotlib.pyplot as plt

在Anaconda環(huán)境下(py36)C:\Users\lenovo>導(dǎo)入:conda install matplotlib
                plt.hist(arr) #設(shè)置直方圖
                plt.show() #顯示圖

九、綜合練習(xí)

1 求出考試分?jǐn)?shù)的以下值:

均值          中位數(shù)       眾數(shù)        極差          方差 
標(biāo)準(zhǔn)差        變異系數(shù)(均值/方差)       偏度          峰度

2 步驟1: 創(chuàng)建兩個(gè)二維數(shù)組:[分?jǐn)?shù),出現(xiàn)次數(shù)]

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]])

步驟2:創(chuàng)建函數(shù),將傳入的多維數(shù)組扁平化->變成一維數(shù)組

方法1:

def createScore(arr):
 score = []   #所有學(xué)員分?jǐn)?shù)
 row = arr.shape[0]
 for i in np.arange(0,row):
  for j in np.arange(0,int(arr[i][1])):
  score.append(arr[i][1]))
 score = np.array(score)
 return score

方法2

score_Easy, num_Easy = arrEasy[:,0],arrEasy[:,1] #所有行第一列;所有行第二列
score_Diff, num_Diff = arrDiff[:,0],arrDiff[:,1] #同上
print (score_Easy,num_Easy )
print (score_Diff,num_Diff )

步驟3:創(chuàng)建函數(shù),根據(jù)傳入數(shù)組,對(duì)其進(jìn)行統(tǒng)計(jì)

def calStatValue(score):
 #集中趨勢(shì)度量
 print('均值')
 print(np.mean(score))
 print('中位數(shù)')
 print(np.median(score))
 print('眾數(shù)')
 print(stats.mode(score))
 #離散趨勢(shì)度量
 print('極差')
 print(np.ptp(score))
 print('方差')
 print(np.var(score))
 print('標(biāo)準(zhǔn)差')
 print(np.std(score))
 print('變異系數(shù)')
 print(np.mean(score)/np.std(score))
 #偏度與峰度的度量
 print('偏度')
 print(stats.skewness(score))
 print('峰度')
 print(stats.Kurtosis(score))

步驟4:創(chuàng)建函數(shù),做一個(gè)簡(jiǎn)單的箱線圖/柱形圖

def drawGraghic(score)
 plt.boxplot([score],labels['score']) #箱線圖
 plt.title('箱線圖')
 plt.show()
 plt.hist(score,100)
 plt.show()

步驟5:

步驟6:

案例完整代碼:

import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
def createScore(arr):
 score = []     #所有學(xué)員分?jǐn)?shù)
 row = arr.shape[0]   #獲取多少組元素
 for i in np.arange(0,row): #遍歷所有元素組
  for j in np.arange(0,int(arr[i][1])):#從0開(kāi)始填充次數(shù),第i行第1列
   score.append(arr[i][0]))
 score = np.array(score)
 return score
_________________________________
使用切片獲取分?jǐn)?shù)
score_Easy, num_Easy = arrEasy[:,0],arrEasy[:,1] #所有行第一列;所有行第二列
score_Diff, num_Diff = arrDiff[:,0],arrDiff[:,1] #同上
print (score_Easy,num_Easy)   #查看分?jǐn)?shù),人數(shù)
print (score_Diff,num_Diff)   #同上
All_score_Easy = np.repeat(list(score_Easy),list(num_Easy)) #所有分?jǐn)?shù)
All_score_Diff = np.repeat(list(score_Diff),list(num_Diff)) #所有分?jǐn)?shù)
________________________________
def createOneScore():
 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]])
 return createScore(arrOne)
def createTwoScore():  
 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]])
 return createScore(arrTwo)
def calStatValue(score):
 #集中趨勢(shì)度量
 print('均值')
 print(np.mean(score))
 print('中位數(shù)')
 print(np.median(score))
 print('眾數(shù)')
 print(stats.mode(score))
 #離散趨勢(shì)度量
 print('極差')
 print(np.ptp(score))
 print('方差')
 print(np.var(score))
 print('標(biāo)準(zhǔn)差')
 print(np.std(score))
 print('變異系數(shù)')
 print(np.mean(score)/np.std(score))
 #偏度與峰度的度量
 (skewness,pvalue1) = stats.skewtest(score) 
 print('偏度')
 print(stats.skewness(score))
 (Kurtosistest,pvalue2) = stats.kurtosistest(arr)
 print('峰度')
 print(stats.Kurtosis(score)) 
 return
#畫(huà)圖
def drawGraghic(score)
 plt.boxplot([score],labels['score']) #箱線圖
 plt.title('箱線圖')
 plt.show()
 plt.hist(score,100)
 plt.show()
 return

          總結(jié)

以上所述是小編給大家介紹的Python科學(xué)計(jì)算庫(kù)—Scipy,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

相關(guān)文章

  • Pandas index操作索引的實(shí)現(xiàn)

    Pandas index操作索引的實(shí)現(xiàn)

    Pandas中的索引index用于選擇特定的行數(shù)和列數(shù),加快數(shù)據(jù)訪問(wèn)速度,本文就來(lái)介紹一下index操作索引,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • Django零基礎(chǔ)入門(mén)之靜態(tài)文件的引用

    Django零基礎(chǔ)入門(mén)之靜態(tài)文件的引用

    這篇文章主要介紹了Django零基礎(chǔ)入門(mén)之靜態(tài)文件的引用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • Python?pass函數(shù)使用及其應(yīng)用的詳解

    Python?pass函數(shù)使用及其應(yīng)用的詳解

    Python中,pass是一種空語(yǔ)句,即不做任何事情,只起到占位符的作用,本文主要介紹了Python?pass函數(shù)使用及其應(yīng)用的詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Python第三方庫(kù)之OpenCV庫(kù)的實(shí)用指南

    Python第三方庫(kù)之OpenCV庫(kù)的實(shí)用指南

    OpenCV(Open Source Computer Vision Library)作為一個(gè)強(qiáng)大的計(jì)算機(jī)視覺(jué)庫(kù),提供了豐富的圖像處理和計(jì)算機(jī)視覺(jué)功能,本文將帶領(lǐng)讀者使用Python編程語(yǔ)言,通過(guò)簡(jiǎn)單的代碼示例,初步掌握OpenCV的圖像處理技術(shù),需要的朋友可以參考下
    2024-09-09
  • Python基于sftp及rsa密匙實(shí)現(xiàn)遠(yuǎn)程拷貝文件的方法

    Python基于sftp及rsa密匙實(shí)現(xiàn)遠(yuǎn)程拷貝文件的方法

    這篇文章主要介紹了Python基于sftp及rsa密匙實(shí)現(xiàn)遠(yuǎn)程拷貝文件的方法,結(jié)合實(shí)例形式分析了基于RSA秘鑰遠(yuǎn)程登陸及文件操作的相關(guān)技巧,需要的朋友可以參考下
    2016-09-09
  • Python OpenCV閾值處理詳解

    Python OpenCV閾值處理詳解

    閾值處理是一種簡(jiǎn)單、有效的將圖像劃分為前景和背景的方法。圖像分割通常用于根據(jù)對(duì)象的某些屬性(例如,顏色、邊緣或直方圖)從背景中提取對(duì)象。本文將為大家詳細(xì)介紹OpenCV中的閾值處理,需要的可以參考一下
    2022-02-02
  • 淺談Python numpy創(chuàng)建空數(shù)組的問(wèn)題

    淺談Python numpy創(chuàng)建空數(shù)組的問(wèn)題

    今天遇到一個(gè)小小的問(wèn)題,是關(guān)于numpy創(chuàng)建空數(shù)組,今天特地整理了這篇文章,文中作出了非常詳細(xì)的介紹,對(duì)正在學(xué)習(xí)python的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • 使用Python實(shí)現(xiàn)壓縮pptx的功能

    使用Python實(shí)現(xiàn)壓縮pptx的功能

    當(dāng)處理大型PPTX文件時(shí),其中包含許多高分辨率照片時(shí),文件大小可能會(huì)顯著增加,為了解決這個(gè)問(wèn)題,我們可以使用Python編程語(yǔ)言和python-pptx庫(kù)來(lái)壓縮PPTX文件中的照片,下面我們就來(lái)看看具體操作吧
    2024-02-02
  • Python學(xué)習(xí)之if 條件判斷語(yǔ)句

    Python學(xué)習(xí)之if 條件判斷語(yǔ)句

    篇文章主要介紹了Python if 條件判斷語(yǔ)句,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-10-10
  • 檢測(cè)pytorch是否使用GPU的方法小結(jié)

    檢測(cè)pytorch是否使用GPU的方法小結(jié)

    pytorch在服務(wù)器上跑的很慢,nvidia-smi顯示GPU利用率一直是0%,所以本文總結(jié)了一些可以檢測(cè)深度學(xué)習(xí)算法是否在使用GPU的方法,需要的朋友可以參考下
    2023-12-12

最新評(píng)論

尉犁县| 宁化县| 海阳市| 定边县| 乾安县| 浙江省| 牙克石市| 长汀县| 卫辉市| 名山县| 岑溪市| 云浮市| 汶上县| 响水县| 大余县| 巴彦淖尔市| 长顺县| 彭山县| 正阳县| 象山县| 富裕县| 府谷县| 梁河县| 巴东县| 进贤县| 铁岭县| 舟曲县| 会泽县| 诸城市| 彰化市| 南充市| 新巴尔虎左旗| 包头市| 眉山市| 额济纳旗| 合川市| 张家口市| 茂名市| 曲麻莱县| 岳阳县| 剑河县|