我想强制下面的特征向量矩阵中的值为float32
类型以节省内存空间而不是使用float64
。但是,我在eigenvectors.astype(np.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 :(得分:0)
np.linalg.eig
函数返回与其参数相同的dtype
数组。
所以你有两个选择:
np.linalg.eig(L.todense().astype(np.float32))
。 (这可能会溢出)第二种选择是这样的:
eigenvalues, eigenvectors = np.linalg.eig(L.todense())
eigenvectors = eigenvectors.astype(np.float32)