0
A
回答
3
假設輸入作爲排序,我們可以使用np.searchsorted
得到其中600
可以被放置在該排序的順序索引,然後簡單地使用索引和一次性移索引以獲得經索引的下,上限,像所以 -
idx = np.searchsorted(x,600)
out = x[idx-1], x[idx]
採樣運行 -
In [41]: x = [10, 100, 1000, 10000]
In [42]: idx = np.searchsorted(x,600)
In [44]: x[idx-1], x[idx]
Out[44]: (100, 1000)
我們也可以用bisect
module,我相信這可能是一個有點快 -
import bisect
idx = bisect.bisect_left(x,600)
0
Iterate over the list;檢查當前數字是否大於測試值;如果是select this value and the previous value。
enumerate()可能會使這更容易。
假設一個排序列表。
相關問題
- 1. 給定一個排序數組,找到重複值的最大子數組
- 2. 排序數組開始與給定值
- 3. 從給定的數字中找出一個序列,然後求和給定值?
- 4. 使用自定義排序順序排序數組,一個值是最後
- 5. 在序列化數組中找到一個特定值yii 2.0
- 6. 排序數組有一定的值?
- 7. 給定一個數組部分是不是排序部分,如何找到一個特定的元素?
- 8. 按另一個數組的值對數組排序的值進行排序
- 9. 在給定關鍵值的Visual Basic數組中找到值
- 10. 在未排序數組中查找值
- 11. 查找數組中整數的有效賦值(給定順序的排列)
- 12. 如何排序到不同的數組,其中每個值分配給Matlab中的另一個數組的值?
- 13. 給定一個數組找到m個奇數的子數組的數量?
- 14. 在給定一個數組的數組
- 15. 如何取消排序一個NP數組給定的argsort
- 16. 排序在一個數組
- 17. 給定一組數據點,找到一個「最接近」的點
- 18. 排序由索引值與數組給定的順序
- 19. STL排序向量找到第一個元素小於或等於給定值
- 20. 給定2個一維數組,按升序排序。寫一個程序,將它們合併成一個單一的排序數組,按升序排列
- 21. 從一個排序數組插入數據到另一個排序數組
- 22. php - 按數組中最後一個鍵的值排序?
- 23. 查找預先排序的數組中的給定值的索引
- 24. 排序與選擇一個幾乎排序後的數組
- 25. 將一個排序後的數組重新排序
- 26. 排序兩個數組(值,鍵),然後排序鍵
- 27. 如何有一個數組值,在另一個數組中找到一個值?
- 28. 如何在排序後的數組中找到一個元素,使得它之後的所有元素都大於給定值?
- 29. 給定一個無序的整數數組,輸出中值
- 30. 尋找排序數組中綁定給定值的兩個連續值的優雅方式?
好,但我會警告OP檢查邊緣情況,例如當搜索數組的最小值和最大值以外的值,例如'0'或'10001':'idx = np.searchsorted(x,0 ); x [idx-1],x [idx]'給出'(10000,10)'和'idx = np.searchsorted(x,10001); x [idx-1],x [idx]'給出'IndexError:列表索引超出範圍'。 –
@StevenRumbalski好點。 OP需要澄清那些邊緣情況下期望的下限,上限。 – Divakar
謝謝!我永遠不會有數值超出最小值/最大值的情況 – UnlimitedQuestions