簡體   English   中英

如何有效地將numpy值轉換為范圍索引數組

[英]How to efficiently convert numpy values to array of range indexes

我試圖找出一種有效的方法來獲取浮點值的numpy數組並將其轉換為與特定范圍相關聯的索引。

例如x浮點數的numpy數組[-999.99,433.000,-56.00 ....](此數組實際上很大,通常從6000到25000值。

范圍信息實際上由范圍開始值(按升序排列)的3至20行(y)左右的小得多組成。 例如[-9999.0、0.0、0.0、500.0 99999.0]。 可以重復顯示一個值,如0.0所示。

然后使用它來構建一組范圍,以使范圍的開始= [:yrows-2]和end = [1:yrows -1],從而得出一系列范圍[(-9999.0,0.0),( 0.0、0.0),(0.0、500.0),(500.0、99999.0),且總行數為-1(然后可以生成與每一行相對應的索引)

然后,我需要得出的是原始x浮點值所在的y行的索引的等效項(每個x浮點只有一個)。 然后,我將使用索引來導出與該特定范圍關聯的更多信息。

例如,[-999.99、433.000,-56.00 ....]的索引將產生indexvalues [0、2、0 ...]為清楚起見,x值未進行任何排序,但始終大於最小數組范圍值,並且小於最大數組范圍值。

索引將起作用,以使所需的索引為x> =范圍開始且小於范圍結束的索引,因此上面的(0.0,0.0)條目是一個永遠不會被拾取的范圍,可以在其中創建新的end / start屬性前一個,下一個范圍。

確定這已解決。 numpy.digitize完全滿足我的需求,例如numpy.digitize(xfloatarray,ybins,right = False)。

我只是沒有碰到過函數,並且在發布后無法在函數中找到Google ...我只是一直在獲得有關拆分數組或創建索引的結果。

確定這已解決。 numpy.digitize完全滿足我的需求,例如

numpy.digitize(xfloatarray, ybins, right=False)

其中xfloatarray是我的浮點數組[ -999.99, 433.000, -56.00....]

ybins是我的范圍值數組[-9999.0, 0.0, 0.0, 500.0 99999.0]

結果為[1,3,1..]

如果在xfloatarray使用值0.0,它將返回值3,即不會返回值2。

暫無
暫無

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

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