将Numpy矩阵值转换为float32

时间:2017-04-16 18:12:57

标签: python numpy

我想强制下面的特征向量矩阵中的值为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())

1 个答案:

答案 0 :(得分:0)

np.linalg.eig函数返回与其参数相同的dtype数组。

所以你有两个选择:

  1. 试试np.linalg.eig(L.todense().astype(np.float32))。 (这可能会溢出)
  2. 稍后转换特征向量。
  3. 第二种选择是这样的:

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