输入/输出#

NetworkX#

这些方法需要安装networkx

graphblas.io.from_networkx(G, nodelist=None, dtype=None, weight='weight', name=None)#

从networkx图创建一个方形邻接矩阵。

Parameters
Gnx.Graph

要转换的图表

nodelistlist, optional

nx.Graph中的节点列表。如果未提供,将使用所有节点。

dtype

数据类型

weightstr, default=”weight”

权重属性

namestr, optional

结果矩阵的名称

Returns
Matrix
graphblas.io.to_networkx(m, edge_attribute='weight')#

从方形邻接矩阵创建一个networkx有向图。

Parameters
mMatrix

方形邻接矩阵

edge_attributestr, optional

边缘属性的名称来自矩阵的值。如果为None,值将被跳过。默认值为“weight”。

Returns
nx.DiGraph

NumPy#

这些方法用于与密集数组之间的转换。更多信息,请参阅用户指南中的IO部分

classmethod Matrix.from_dense(values, missing_value=None, *, dtype=None, name=None, **opts)#

从NumPy数组或列表的列表中创建一个矩阵。

Parameters
valueslist or np.ndarray

值列表。

missing_valuescalar, optional

一个被视为“缺失”的标量值;此值的元素将被丢弃。 如果为 None,则生成的矩阵将是密集的。

dtypeDataType, optional

矩阵的数据类型。如果未提供,将检查值以选择适当的dtype。

namestr, optional

为矩阵指定的名称。

Returns
Matrix

另请参阅

from_coo
from_edgelist
from_scalar
to_dense
Matrix.to_dense(fill_value=None, dtype=None, **opts)#

将矩阵转换为具有相同形状的NumPy数组,并用缺失值填充。

警告

这可能会创建非常大的数组,需要大量内存;请谨慎使用。

Parameters
fill_valuescalar, optional

用于填充缺失值的值。如果存在缺失值,则这是必需的。

dtypeDataType, optional

请求的输出值数组的数据类型。

Returns
np.ndarray

另请参阅

to_coo
to_dicts
to_edgelist
from_dense
classmethod Vector.from_dense(values, missing_value=None, *, dtype=None, name=None, **opts)#

从NumPy数组或列表创建一个向量。

Parameters
valueslist or np.ndarray

值列表。

missing_valuescalar, optional

一个被视为“缺失”的标量值;此值的元素将被丢弃。 如果为None,则生成的Vector将是密集的。

dtypeDataType, optional

向量的数据类型。如果未提供,将检查值以选择适当的dtype。

namestr, optional

为向量指定的名称。

Returns
Vector

另请参阅

from_coo
from_dict
from_pairs
from_scalar
to_dense
Vector.to_dense(fill_value=None, dtype=None, **opts)#

将向量转换为具有相同形状的NumPy数组,并用缺失值填充。

警告

这可能会创建非常大的数组,需要大量内存;请谨慎使用。

Parameters
fill_valuescalar, optional

用于填充缺失值的值。如果存在缺失值,则这是必需的。

dtypeDataType, optional

请求的输出值数组的数据类型。

Returns
np.ndarray

另请参阅

to_coo
to_dict
from_dense

Scipy 稀疏矩阵#

这些方法需要安装scipy

graphblas.io.from_scipy_sparse(A, *, dup_op=None, name=None)#

从scipy.sparse数组或矩阵创建一个矩阵。

以“csr”或“csc”格式输入的数据在使用SuiteSparse:GraphBLAS导入时将是高效的。

Parameters
Ascipy.sparse

Scipy 稀疏数组或矩阵

dup_opBinaryOp, optional

用于允许重复条目的格式(例如coo)的聚合函数

namestr, optional

结果矩阵的名称

Returns
Matrix
graphblas.io.to_scipy_sparse(A, format='csr')#

从GraphBLAS矩阵或向量创建一个scipy.sparse数组。

Parameters
AMatrix or Vector

要转换的GraphBLAS对象

formatstr

{‘bsr’, ‘csr’, ‘csc’, ‘coo’, ‘lil’, ‘dia’, ‘dok’}

Returns
scipy.sparse array

PyData 稀疏#

这些方法需要安装sparse

graphblas.io.from_pydata_sparse(s, *, dup_op=None, name=None)#

从pydata.sparse数组或矩阵创建一个向量或矩阵。

以“gcxs”格式输入的数据在使用SuiteSparse:GraphBLAS导入时将非常高效。

Parameters
ssparse

PyData 稀疏数组或矩阵(参见 https://sparse.pydata.org

dup_opBinaryOp, optional

用于允许重复条目的格式(例如coo)的聚合函数

namestr, optional

结果矩阵的名称

Returns
Vector
Matrix
graphblas.io.to_pydata_sparse(A, format='coo')#

从GraphBLAS矩阵或向量创建一个pydata.sparse数组。

Parameters
AMatrix or Vector

要转换的GraphBLAS对象

formatstr

{‘coo’, ‘dok’, ‘gcxs’}

Returns
sparse array (see https://sparse.pydata.org)

矩阵市场#

Matrix Market 是一种用于存储图的纯文本格式

这些方法需要安装scipy

graphblas.io.mmread(source, engine='auto', *, dup_op=None, name=None, **kwargs)#

从Matrix Market文件的内容创建一个GraphBLAS矩阵。

这使用了 scipy.io.mmreadfast_matrix_market.mmread

默认情况下,如果可用,将使用fast_matrix_market,因为它更快。**kwargs中的其他关键字参数将传递给引擎的mmread。例如,parallelism=8将在使用fast_matrix_market时将使用的线程数设置为8。

Parameters
sourcestr or file

文件名(.mtx 或 .mtz.gz)或类文件对象

engine{“auto”, “scipy”, “fmm”, “fast_matrix_market”}, default “auto”

如何读取矩阵市场文件。“scipy”使用scipy.io.mmread, “fmm”和“fast_matrix_market”使用fast_matrix_market.mmread, 而“auto”将在可用时使用“fast_matrix_market”。

dup_opBinaryOp, optional

重复坐标的聚合函数(如果找到)

namestr, optional

结果矩阵的名称

Returns
Matrix
graphblas.io.mmwrite(target, matrix, engine='auto', *, comment='', field=None, precision=None, symmetry=None, **kwargs)#

从GraphBLAS矩阵的内容写入Matrix Market文件。

这使用了 scipy.io.mmwrite

Parameters
targetstr or file target

文件名 (.mtx) 或已打开用于写入的文件对象

matrixMatrix

要写入的矩阵

engine{“auto”, “scipy”, “fmm”, “fast_matrix_market”}, default “auto”

如何读取矩阵市场文件。“scipy”使用scipy.io.mmwrite, “fmm”和“fast_matrix_market”使用fast_matrix_market.mmwrite, 而“auto”将在可用时使用“fast_matrix_market”。

commentstr, optional

要添加到Matrix Market文件中的注释

fieldstr

{“real”, “complex”, “pattern”, “integer”}

precisionint, optional

用于写入实数或复数值的位数

symmetrystr, optional

{“general”, “symmetric”, “skew-symmetric”, “hermetian”}

尴尬数组#

Awkward Array 是一个用于处理嵌套、可变大小数据的库,包括任意长度的列表、记录、混合类型和缺失数据,使用类似NumPy的语法。请注意,awkward-array 相关的 io 函数的预期用途是将 graphblas 对象转换为awkward,执行必要的计算/转换,并在需要时将awkward数组转换回 graphblas 格式。为了促进这一转换过程,graphblas.io.to_awkward 添加了顶层属性 format,用于描述 graphblas 对象的格式(此属性由 graphblas.io.from_awkward 函数用于重建 graphblas 对象)。

graphblas.io.to_awkward(A, format=None)#

从GraphBLAS矩阵创建一个Awkward数组。

Parameters
AMatrix or Vector

要转换的GraphBLAS对象

formatstr {‘csr’, ‘csc’, ‘hypercsr’, ‘hypercsc’, ‘vec}

默认格式为矩阵的csr;向量的vec

The Awkward Array will have top-level attributes based on format:
- vec/csr/csc: values, indices
- hypercsr/hypercsc: values, indices, offset_labels
Top-level parameters will also be set: format, shape
Returns
awkward.Array
graphblas.io.from_awkward(A, *, name=None)#

从Awkward数组创建矩阵或向量。

Awkward Array 必须具有顶级参数:format, shape

Awkward Array 必须具有基于格式的顶级属性: - vec/csr/csc: 值, 索引 - hypercsr/hypercsc: 值, 索引, 偏移标签

Parameters
Aawkward.Array

带有值和索引的Awkward Array

namestr, optional

结果矩阵或向量的名称

Returns
Vector or Matrix
Note: the intended purpose of this function is to facilitate
conversion of an awkward-array that was created via to_awkward
function. If attempting to convert an arbitrary awkward-array,
make sure that the top-level attributes and parameters contain
the expected values.

可视化#

graphblas.viz.draw(m)#

绘制一个正方形邻接矩阵作为图形。

需要安装networkxmatplotlib

示例输出:

../_images/draw-example.png