ฉันมีสองอาร์เรย์พูดว่า:
A = np.array([[ 1. , 1. , 0.5 ],
[ 2. , 2. , 0.7 ],
[ 3. , 4. , 1.2 ],
[ 4. , 3. , 2.33],
[ 1. , 2. , 0.5 ],
[ 6. , 5. , 0.3 ],
[ 4. , 5. , 1.2 ],
[ 5. , 5. , 1.5 ]])
B = np.array([2,1])
ฉันต้องการค้นหาค่าทั้งหมดของ A
ซึ่งไม่อยู่ในรัศมี 2 จาก B
คำตอบของฉันควรเป็น:
C = [[3,4,1.2],[4,3,2.33],[6,5,0.3],[4,5,1.2],[5,5,1.5]]
มีวิธี pythonic ในการทำเช่นนี้หรือไม่?
สิ่งที่ฉันได้ลองคือ:
radius = 2
C.append(np.extract((cdist(A[:, :2], B[np.newaxis]) > radius), A))
แต่ฉันรู้ว่า np.extract
แบน A
และฉันไม่ได้รับสิ่งที่ฉันคาดหวัง