當前位置:首頁 » 編程語言 » pythoncdf

pythoncdf

發布時間: 2022-08-15 23:23:36

A. 如何繪制的matplotlib經驗CDF在python

分別設置兩個圖的左上角坐標就可以了。

B. python netcdf4怎麼安裝

Windows:

直接去 http://www.lfd.uci.e/~gohlke/pythonlibs/#jpype 下載對應的whl文件,使用

[plain] view plain
pip install x.whl

安裝即可,可能需要安其他的庫,都可以在這個鏈接中找到

CentOS(7):

出離憤怒啊,搞了一大堆編譯的東西都解決不了 - -!

要先安裝epel這個yum源,netCDF4和相關的在這個源中可以獲得

[plain] view plain
yum -y install epel-release
檢測是否安裝成功可以通過下面的命令檢查,如果有版本信息的列印說明安裝成功
[plain] view plain
rpm -q epel-release
接下來就可以安裝netCDF4-python和相關的庫了
[plain] view plain
yum install netcdf4-python

Ubuntu :

可以安完的,在stackoverflow上可以找到一些,試的試的就可以了,兩次各花半天,下次遇到再上圖

有 apt-get install Python-netcdf4

[plain] view plain
sudo ldconfig on all relevant
sudo apt-get install libhdf5-serial-dev
sudo apt-get install libnetcdf-dev
sudo apt-get install libnetcdf4
sudo apt-get install python-netcdf
[plain] view plain
</pre><pre code_snippet_id="1705134" snippet_file_name="blog_20160602_7_674880" name="code" class="plain">
[plain] view plain
祝大家:
[plain] view plain
>>> import netCDF4
>>>

C. 直方圖匹配Python的偏差校正問題,怎麼解決

用一下代碼解決:
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import interp1d
import scipy.stats as st

sim = st.gamma(1,loc=0,scale=0.8) # Simulated
obs = st.gamma(2,loc=0,scale=0.7) # Observed
x = np.linspace(0,4,1000)
simpdf = sim.pdf(x)
obspdf = obs.pdf(x)
plt.plot(x,simpdf,label='Simulated')
plt.plot(x,obspdf,'r--',label='Observed')
plt.title('PDF of Observed and Simulated Precipitation')
plt.legend(loc='best')
plt.show()

plt.figure(1)
simcdf = sim.cdf(x)
obscdf = obs.cdf(x)
plt.plot(x,simcdf,label='Simulated')
plt.plot(x,obscdf,'r--',label='Observed')
plt.title('CDF of Observed and Simulated Precipitation')
plt.legend(loc='best')
plt.show()

# Inverse CDF
invcdf = interp1d(obscdf,x)
transfer_func = invcdf(simcdf)

plt.figure(2)
plt.plot(transfer_func,x,'g-')
plt.show()

D. python使用hist畫頻率直方圖時,怎樣修改填

示例代碼:

  • #概率分布直方圖

  • #高斯分布

  • #均值為0

  • mean=0

  • #標准差為1,反應數據集中還是分散的值

  • sigma=1

  • x=mean+sigma*np.random.randn(10000)

  • fig,(ax0,ax1)=plt.subplots(nrows=2,figsize=(9,6))

  • #第二個參數是柱子寬一些還是窄一些,越大越窄越密

  • ax0.hist(x,40,normed=1,histtype='bar',facecolor='yellowgreen',alpha=0.75)

  • ##pdf概率分布圖,一萬個數落在某個區間內的數有多少個

  • ax0.set_title('pdf')

  • ax1.hist(x,20,normed=1,histtype='bar',facecolor='pink',alpha=0.75,cumulative=True,rwidth=0.8)

  • #cdf累計概率函數,cumulative累計。比如需要統計小於5的數的概率

  • ax1.set_title("cdf")

  • fig.subplots_adjust(hspace=0.4)

  • plt.show()

  • 運行結果為:

E. 怎麼用python進行數據

pandas是本書後續內容的首選庫。pandas可以滿足以下需求:

  • 具備按軸自動或顯式數據對齊功能的數據結構。這可以防止許多由於數據未對齊以及來自不同數據源(索引方式不同)的數據而導致的常見錯誤。.

  • 集成時間序列功能

  • 既能處理時間序列數據也能處理非時間序列數據的數據結構

  • 數學運算和簡約(比如對某個軸求和)可以根據不同的元數據(軸編號)執行

  • 靈活處理缺失數據

  • 合並及其他出現在常見資料庫(例如基於SQL的)中的關系型運算

  • 1、pandas數據結構介紹

    兩個數據結構:Series和DataFrame。Series是一種類似於以為NumPy數組的對象,它由一組數據(各種NumPy數據類型)和與之相關的一組數據標簽(即索引)組成的。可以用index和values分別規定索引和值。如果不規定索引,會自動創建 0 到 N-1 索引。

  • #-*- encoding:utf-8 -*-import numpy as npimport osimport pandas as pdfrom pandas import Series,DataFrameimport matplotlib.pyplot as pltimport time#下面看一下cummin函數#注意:這里的cummin函數是截止到目前為止的最小值,而不是加和以後的最小值frame = DataFrame([[1,2,3,4],[5,6,7,8],[-10,11,12,-13]],index = list('abc'),columns = ['one','two','three','four'])print frame.cummin()print frame

  • >>>

  • one two three four

  • a 1 2 3 4

  • b 1 2 3 4

  • c -10 2 3 -13

  • one two three four

  • a 1 2 3 4

  • b 5 6 7 8

  • c -10 11 12 -13
  • 相關系數與協方差

    有些匯總


F. 如何使用python做統計分析

Shape Parameters
形態參數
While a general continuous random variable can be shifted and scaled
with the loc and scale parameters, some distributions require additional
shape parameters. For instance, the gamma distribution, with density
γ(x,a)=λ(λx)a−1Γ(a)e−λx,
requires the shape parameter a. Observe that setting λ can be obtained by setting the scale keyword to 1/λ.
雖然一個一般的連續隨機變數可以被位移和伸縮通過loc和scale參數,但一些分布還需要額外的形態參數。作為例子,看到這個伽馬分布,這是它的密度函數
γ(x,a)=λ(λx)a−1Γ(a)e−λx,
要求一個形態參數a。注意到λ的設置可以通過設置scale關鍵字為1/λ進行。
Let』s check the number and name of the shape parameters of the gamma
distribution. (We know from the above that this should be 1.)
讓我們檢查伽馬分布的形態參數的名字的數量。(我們知道從上面知道其應該為1)
>>>
>>> from scipy.stats import gamma
>>> gamma.numargs
1
>>> gamma.shapes
'a'

Now we set the value of the shape variable to 1 to obtain the
exponential distribution, so that we compare easily whether we get the
results we expect.
現在我們設置形態變數的值為1以變成指數分布。所以我們可以容易的比較是否得到了我們所期望的結果。
>>>
>>> gamma(1, scale=2.).stats(moments="mv")
(array(2.0), array(4.0))

Notice that we can also specify shape parameters as keywords:
注意我們也可以以關鍵字的方式指定形態參數:
>>>
>>> gamma(a=1, scale=2.).stats(moments="mv")
(array(2.0), array(4.0))

Freezing a Distribution
凍結分布
Passing the loc and scale keywords time and again can become quite
bothersome. The concept of freezing a RV is used to solve such problems.
不斷地傳遞loc與scale關鍵字最終會讓人厭煩。而凍結RV的概念被用來解決這個問題。
>>>
>>> rv = gamma(1, scale=2.)

By using rv we no longer have to include the scale or the shape
parameters anymore. Thus, distributions can be used in one of two ways,
either by passing all distribution parameters to each method call (such
as we did earlier) or by freezing the parameters for the instance of the
distribution. Let us check this:
通過使用rv我們不用再更多的包含scale與形態參數在任何情況下。顯然,分布可以被多種方式使用,我們可以通過傳遞所有分布參數給對方法的每次調用(像我們之前做的那樣)或者可以對一個分布對象凍結參數。讓我們看看是怎麼回事:
>>>
>>> rv.mean(), rv.std()
(2.0, 2.0)

This is indeed what we should get.
這正是我們應該得到的。
Broadcasting
廣播
The basic methods pdf and so on satisfy the usual numpy broadcasting
rules. For example, we can calculate the critical values for the upper
tail of the t distribution for different probabilites and degrees of
freedom.
像pdf這樣的簡單方法滿足numpy的廣播規則。作為例子,我們可以計算t分布的右尾分布的臨界值對於不同的概率值以及自由度。
>>>
>>> stats.t.isf([0.1, 0.05, 0.01], [[10], [11]])
array([[ 1.37218364, 1.81246112, 2.76376946],
[ 1.36343032, 1.79588482, 2.71807918]])

Here, the first row are the critical values for 10 degrees of freedom
and the second row for 11 degrees of freedom (d.o.f.). Thus, the
broadcasting rules give the same result of calling isf twice:
這里,第一行是以10自由度的臨界值,而第二行是以11為自由度的臨界值。所以,廣播規則與下面調用了兩次isf產生的結果相同。
>>>
>>> stats.t.isf([0.1, 0.05, 0.01], 10)
array([ 1.37218364, 1.81246112, 2.76376946])
>>> stats.t.isf([0.1, 0.05, 0.01], 11)
array([ 1.36343032, 1.79588482, 2.71807918])

If the array with probabilities, i.e, [0.1, 0.05, 0.01] and the array of
degrees of freedom i.e., [10, 11, 12], have the same array shape, then
element wise matching is used. As an example, we can obtain the 10% tail
for 10 d.o.f., the 5% tail for 11 d.o.f. and the 1% tail for 12 d.o.f.
by calling
但是如果概率數組,如[0.1,0.05,0.01]與自由度數組,如[10,11,12]具有相同的數組形態,則元素對應捕捉被作用,我們可以分別得到10%,5%,1%尾的臨界值對於10,11,12的自由度。
>>>
>>> stats.t.isf([0.1, 0.05, 0.01], [10, 11, 12])
array([ 1.37218364, 1.79588482, 2.68099799])

Specific Points for Discrete Distributions
離散分布的特殊之處
Discrete distribution have mostly the same basic methods as the
continuous distributions. However pdf is replaced the probability mass
function pmf, no estimation methods, such as fit, are available, and
scale is not a valid keyword parameter. The location parameter, keyword
loc can still be used to shift the distribution.
離散分布的簡單方法大多數與連續分布很類似。當然像pdf被更換為密度函數pmf,沒有估計方法,像fit是可用的。而scale不是一個合法的關鍵字參數。Location參數,關鍵字loc則仍然可以使用用於位移。
The computation of the cdf requires some extra attention. In the case of
continuous distribution the cumulative distribution function is in most
standard cases strictly monotonic increasing in the bounds (a,b) and
has therefore a unique inverse. The cdf of a discrete distribution,
however, is a step function, hence the inverse cdf, i.e., the percent
point function, requires a different definition:
ppf(q) = min{x : cdf(x) >= q, x integer}

Cdf的計算要求一些額外的關注。在連續分布的情況下,累積分布函數在大多數標准情況下是嚴格遞增的,所以有唯一的逆。而cdf在離散分布,無論如何,是階躍函數,所以cdf的逆,分位點函數,要求一個不同的定義:
ppf(q) = min{x : cdf(x) >= q, x integer}
For further info, see the docs here.
為了更多信息可以看這里。
We can look at the hypergeometric distribution as an example
>>>
>>> from scipy.stats import hypergeom
>>> [M, n, N] = [20, 7, 12]

我們可以看這個超幾何分布的例子
>>>
>>> from scipy.stats import hypergeom
>>> [M, n, N] = [20, 7, 12]

If we use the cdf at some integer points and then evaluate the ppf at
those cdf values, we get the initial integers back, for example
如果我們使用在一些整數點使用cdf,它們的cdf值再作用ppf會回到開始的值。
>>>
>>> x = np.arange(4)*2
>>> x
array([0, 2, 4, 6])
>>> prb = hypergeom.cdf(x, M, n, N)
>>> prb
array([ 0.0001031991744066, 0.0521155830753351, 0.6083591331269301,
0.9897832817337386])
>>> hypergeom.ppf(prb, M, n, N)
array([ 0., 2., 4., 6.])

If we use values that are not at the kinks of the cdf step function, we get the next higher integer back:
如果我們使用的值不是cdf的函數值,則我們得到一個更高的值。
>>>
>>> hypergeom.ppf(prb + 1e-8, M, n, N)
array([ 1., 3., 5., 7.])
>>> hypergeom.ppf(prb - 1e-8, M, n, N)
array([ 0., 2., 4., 6.])

G. 如何用python計算隱含波動率

  1. 設定參數

  2. r=0.032 # risk-free interest rate

  3. t=float(30)/365 # time to expire (30 days)

  4. q=0 # dividend yield

  5. S0=2.3 # underlying price

  6. X=2.2 # strike price

  7. mktprice=0.18 # market price

  8. # 用二分法求implied volatility,暫只針對call option

  9. sigma=0.3 # initial volatility

  10. C=P=0

  11. upper=1

  12. lower=0

  13. while abs(C-mktprice)>1e-6:

  14. d1=(np.log(S0/X)+(r-q+sigma**2/2)*t)/(sigma*np.sqrt(t))

  15. d2=d1-sigma*np.sqrt(t)

  16. C=S0*np.exp(-q*t)*norm.cdf(d1)-X*np.exp(-r*t)*norm.cdf(d2)

  17. P=X*np.exp(-r*t)*norm.cdf(-d2)-S0*np.exp(-q*t)*norm.cdf(-d1)

  18. if C-mktprice>0:

  19. upper=sigma

  20. sigma=(sigma+lower)/2

  21. else:

  22. lower=sigma

  23. sigma=(sigma+upper)/2

  24. print sigma # implied volatility


熱點內容
c緩存池 發布:2025-01-20 13:23:45 瀏覽:6
數控編程帥氣寶塔圖紙 發布:2025-01-20 13:22:15 瀏覽:871
共享文件夾加密軟體 發布:2025-01-20 13:08:41 瀏覽:40
標識符是怎樣存儲的 發布:2025-01-20 13:08:39 瀏覽:894
怎麼看安卓大屏什麼牌子 發布:2025-01-20 13:08:35 瀏覽:258
ios開發java 發布:2025-01-20 13:02:42 瀏覽:881
速騰有側燈的是哪個配置 發布:2025-01-20 13:01:53 瀏覽:371
社保用戶名和密碼都忘記了怎麼辦 發布:2025-01-20 12:55:55 瀏覽:321
最優存儲形式是什麼 發布:2025-01-20 12:51:32 瀏覽:27
centos編譯php7 發布:2025-01-20 12:33:52 瀏覽:920