ฉันมีรหัสตามลำดับว่าพิกัดคาร์ทีเซียนทุกคู่ที่พบใน DataFrame
ของฉันอยู่ในพื้นที่ปิดล้อมทางเรขาคณิตหรือไม่ แต่ฉันสงสัยว่ามันค่อนข้างช้าเพราะมันไม่ได้เป็นแบบเวกเตอร์ นี่คือตัวอย่าง:
from matplotlib.patches import Rectangle
r1 = Rectangle((0,0), 10, 10)
r2 = Rectangle((50,50), 10, 10)
df = pd.DataFrame([[1,2],[-1,5], [51,52]], columns=['x', 'y'])
for j in range(df.shape[0]):
coordinates = df.x.iloc[j], df.y.iloc[j]
if r1.contains_point(coordinates):
df['location'].iloc[j] = 0
else r2.contains_point(coordinates):
df['location'].iloc[j] = 1
ใครสามารถเสนอแนวทางเร่งความเร็วได้บ้าง?