3 回答

TA貢獻1810條經驗 獲得超5個贊
定義需要輸入的函數的一種方法是將兩者保留為單獨的參數(這也修復了一些錯誤并簡化了獲取角度值的邏輯):
def angle(x, y):
rad = np.arctan2(y, x)
degrees = np.int(rad*180/np.pi)
if degrees < 0:
degrees = 360 + degrees
return degrees
順便說一句,atan2輸入順序y, x很容易混淆。單獨指定它們的一個優點是可以幫助避免這種情況。如果您想將輸入保留為數組,類似這樣的內容可以幫助您驗證長度:
def angle(a):
if len(a) != 2:
raise IndexError("vector a expected to be length 2")
x = a[0]
y = a[1]
rad = np.arctan2(y, x)
degrees = np.int(rad*180/np.pi)
if degrees < 0:
degrees = 360 + degrees
return degrees

TA貢獻1841條經驗 獲得超3個贊
我的壞處只是注意到它實際上是 numpy 數組,在這種情況下:if isinstance(x, np.ndarray) and x.shape[0] == 2
來自評論:x.ndim == 2
聽起來更好。
添加回答
舉報