2
之間找到索引我想找到dataX
和dataY
這是邊界(B4X1,B4X2)之間的所有元素和(B4Y1,B4Y2)落在給定範圍
import numpy as np
B4X1 = 50.
B4X2 = 60.
B4Y1 = 150.
B4Y2 = 160.
dataX = np.array([40, 25, 50, 60, 55])
dataY = np.array([140, 125, 150, 160, 155])
Expected result is:
result = array([False, False, False, False, True], dtype=bool)
怎麼會做的更快的方法它?
我一樣:
OK = (B4X1 < dataX < B4X2) & (B4Y1 < dataY < B4Y2)
print OK
但錯誤:
Traceback (most recent call last):
File "C:\Users\je\Desktop\test.py", line 14, in <module>
OK = (B4X1 < dataX < B4X2) & (B4Y1 < dataY < B4Y2)
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
這是否真的是這樣做的最佳方式?它會比應該要求的高2N以上。 – user3467349
@ user3467349我確定有一個更快的方法,但這種方法通常足夠快,您不必擔心條紋等。 Numpy在這方面寫得很好。此外,如果你寫的東西給出了一個錯誤,那麼它的速度有多快並不重要。 –
@ user3467349既然你提出了比較,你也應該提出分支,這可能比簡單地執行'和'操作更昂貴。查看我上面提供的時間信息。另外,請記住,numpy在本地代碼中執行內部循環,而不是在python中執行,所以「長途」在這裏實際上效率更高。 –