2017-04-16 152 views
0

我想強制下面的特徵向量矩陣的值爲float32類型以節省內存空間而不是使用float64。但是,似乎我在eigenvectors.astype(np.float32)以下的方式不起作用。有沒有解決這個問題的方法?將Numpy矩陣值轉換爲float32

import networkx as nx 
G = nx.Graph(edges) 
L = nx.laplacian_matrix(G) 
eigenvalues, eigenvectors.astype(np.float32) = np.linalg.eig(L.todense()) 

回答

0

np.linalg.eig函數返回相同dtype作爲其參數的陣列。

所以,你有兩個選擇:

  1. 嘗試np.linalg.eig(L.todense().astype(np.float32))。 (這可能會溢出)
  2. 稍後轉換特徵向量。

第二個方案是這樣的:

eigenvalues, eigenvectors = np.linalg.eig(L.todense()) 
eigenvectors = eigenvectors.astype(np.float32) 
+0

非常感謝你。 – Michael