簡體   English   中英

在向量歸一化期間更改 numpy 數組值時 numpy 中的問題

[英]Issue in numpy when change numpy array value during vector normalization

假設我有一個 numpy 數組a = np.array([[1,2,3],[2,3,4]])

我想把這兩個向量變成單位向量。 工作代碼是

for i in range(2):
    a[i] = a[i]/np.linalg.norm(a[i])

最后,結果a變成:

一個=

array([[0, 0, 0],
       [0, 0, 0]])

而如果我運行計算並打印出類似的結果

for i in range(2):
    print(a[i],i,np.linalg.norm(a[i]))

該代碼將打印出正確的結果作為單位向量。

因此我的問題是: 1. 如果我將 numpy 數組分配給單位向量結果,為什么它會變為零。 2.通過numpy數組將向量列表更改為單位向量的正確方法是什么?

非常感謝大家!

因為numpy.array()要求您聲明數組中包含的對象的數據類型。 如果未聲明,它將被確定為最小數據類型。 在您的情況下,它將是一個int 要解決您的問題,您可以使用dtype = float創建一個新數組或聲明adtype

a = np.array([[1,2,3],[2,3,4]], dtype=np.float32)

暫無
暫無

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

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