[英]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.