第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

兩個 Numpy 數(shù)組之間的點積和角度(以度為單位)

兩個 Numpy 數(shù)組之間的點積和角度(以度為單位)

臨摹微笑 2023-12-26 14:58:48
我想編寫一個函數(shù),它接受兩個長度相同的 numpy 數(shù)組并返回:兩個數(shù)組的點積兩個向量之間的角度(以度為單位)預(yù)期輸出如下:print(angle_dot(np.array([0., 1.]), np.array([1., 0.])))## (0.0, 90.0)print(angle_dot(np.array([2., -1, 1, -2]), np.array([-1., 1.5, 3., 1])))## (-2.5, 102.5)這是我到目前為止所擁有的,我似乎無法獲得正確的數(shù)組之間的角度值。import numpy as npdef angle_dot(a, b):    dot_product = round(np.dot(a, b), 1)    angle = round(np.degrees(dot_product), 1)    return dot_product, angleprint(angle_dot(np.array([0., 1.]), np.array([1., 0.])))## (0.0, 0.0)print(angle_dot(np.array([2., -1, 1, -2]), np.array([-1., 1.5, 3., 1])))## (-2.5, -143.2)
查看完整描述

2 回答

?
收到一只叮咚

TA貢獻1821條經(jīng)驗 獲得超5個贊

使用以下公式定義角度(這只是定義它的一種方法):


cos(alpha) = (a . b) / (|a| * |b|)

所以,角度為:


alpha = arccos((a . b) / (|a| * |b|))

代碼:


import numpy as np


def angle_dot(a, b):

    dot_product = np.dot(a, b)

    prod_of_norms = np.linalg.norm(a) * np.linalg.norm(b)

    angle = round(np.degrees(np.arccos(dot_product / prod_of_norms)), 1)

    return round(dot_product, 1), angle


print(angle_dot(np.array([0., 1.]), np.array([1., 0.])))


print(angle_dot(np.array([2., -1, 1, -2]), np.array([-1., 1.5, 3., 1])))

輸出:


(0.0, 90.0)

(-2.5, 102.5)


查看完整回答
反對 回復(fù) 2023-12-26
?
炎炎設(shè)計

TA貢獻1808條經(jīng)驗 獲得超4個贊

使用點積求 2 個 n 維數(shù)組之間的角度的公式為:


dot(a, b) = ||a|| * ||b|| * cos(theta)

theta = arccos( dot(a, b) / (||a|| * ||b||))

或者在 numpy 中:


def angle(a, b):

    return np.degrees(np.arccos(np.dot(a, b)/ (np.linalg.norm(a) * np.linalg.norm(b))))


查看完整回答
反對 回復(fù) 2023-12-26
  • 2 回答
  • 0 關(guān)注
  • 253 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號