gpt4 book ai didi

python - Numpy 的 asarray() 不适用于 csr_matrix

转载 作者:行者123 更新时间:2023-12-01 05:00:45 24 4
gpt4 key购买 nike

我真是个大麻烦。 6 个月前,我用 Python 编写了使用 NumpyNetworkx 的代码:

import numpy as np
import networkx as nx

G = nx.Graph()

#add node and edges to G ...

A = nx.adj_matrix(Gx)
A = np.asarray(A)

现在我需要在具有最新版本 Numpy 的计算集群上运行它。但是当我运行此代码时它失败了,因为 A = np.asarray(A) 返回 ()

我不知道该怎么办,因为这个代码无处不在。这是 Numpy 中的错误还是什么?

这个问题与我的earlier question有关

最佳答案

函数nx.adj_matrix(G)返回一个包含G邻接矩阵的scipy.sparse矩阵对象。

如果您想要一个 numpy 矩阵或数组,您只需使用 .todense() 方法即可实现:

In [1]: import networkx as nx

In [2]: G = nx.path_graph(4)

In [3]: S = nx.adj_matrix(G)

In [4]: S
Out[4]:
<4x4 sparse matrix of type '<type 'numpy.int64'>'
with 6 stored elements in Compressed Sparse Row format>

In [5]: A = S.todense()

In [6]: A
Out[6]:
matrix([[0, 1, 0, 0],
[1, 0, 1, 0],
[0, 1, 0, 1],
[0, 0, 1, 0]])

In [7]: A.A
Out[7]:
array([[0, 1, 0, 0],
[1, 0, 1, 0],
[0, 1, 0, 1],
[0, 0, 1, 0]])

关于python - Numpy 的 asarray() 不适用于 csr_matrix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26273512/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com