簡體   English   中英

陣列的差分步長

[英]Differential step size for array

我在用python工作。 我有一個角度量,我希望數組的步長變化,而不是像np.linspace(0, pi, 100)一樣創建np.linspace(0, pi, 100)個相等步長的均勻網格。 相反,對於接近0和pi的值,我希望有更多的“分辨率”(即較小的步長),而較大的步長則應接近pi / 2弧度。 有沒有簡單的方法可以使用numpy或其他方式提供的技術在python中實現此功能?

這是使用np.r_構造一個數組的方法,該數組兩端的間距np.r_ ,中間的寬度較大:

In [578]: x=np.r_[0:.09:10j, .1:.9:11j, .91:1:10j]
In [579]: x
Out[579]: 
array([ 0.  ,  0.01,  0.02,  0.03,  0.04,  0.05,  0.06,  0.07,  0.08,
        0.09,  0.1 ,  0.18,  0.26,  0.34,  0.42,  0.5 ,  0.58,  0.66,
        0.74,  0.82,  0.9 ,  0.91,  0.92,  0.93,  0.94,  0.95,  0.96,
        0.97,  0.98,  0.99,  1.  ])

然后用np.pi縮放x

這就是創建np.r_目的。 並不是說它在做任何特別的事情。 它與以下操作相同:

np.concatenate([np.linspace(0,.09,10),
                np.linspace(.1,.9,11),
                np.linspace(.91,1,10)])

為了使間距漸變更平滑,我嘗試使用曲線繪制單個linspace

In [606]: x=np.arctan(np.linspace(-10,10,10))
In [607]: x -= x[0]
In [608]: x /= x[-1]
In [609]: x
Out[609]: 
array([ 0.        ,  0.00958491,  0.02665448,  0.06518406,  0.21519086,
        0.78480914,  0.93481594,  0.97334552,  0.99041509,  1.        ])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM