簡體   English   中英

坐標的二維 arrays 的元素叉積

[英]Element-wise Cross Product of 2D arrays of Coordinates

我正在使用一個數據集,該數據集將單位向量數組存儲為向量組件的 arrays。

我將如何使用矢量化代碼/廣播來編寫干凈緊湊的代碼以逐元素地給出向量的叉積?

例如,這里有一個蠻力方法,循環遍歷 arrays 的長度,取出坐標,重新組合兩個向量,然后計算叉積。

x = [0,0,1,1]
y = [0,1,0,1]
z = [1,0,0,1]

v1 = np.array([x,y,z])

x = [1,1,0,1]
y = [1,0,1,1]
z = [0,1,1,1]

v2 = np.array([x,y,z])

result = []
for i in range(0, len(x)):
    a = [v1[0][i], v1[1][i], v1[2][i]]
    b = [v2[0][i], v2[1][i], v2[2][i]]
    result.append(np.cross(a,b))

result

>>>

[
 array([-1,  1,  0]),
 array([ 1,  0, -1]),
 array([ 0, -1,  1]),
 array([ 0,  0,  0])
]

我試圖理解這個問題和答案來概括它,但失敗了:
- 2 arrays 與 Python 中包含的向量的元素交叉乘積

np.cross也可以與 2D arrays 一起使用,您只需要指定正確的軸:

np.cross(v1,v2, axisa=0, axisb=0)
array([[-1,  1,  0],
       [ 1,  0, -1],
       [ 0, -1,  1],
       [ 0,  0,  0]])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM