输入/输出#
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
- 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
- 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
- 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.mmread 或 fast_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
- 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)#
绘制一个正方形邻接矩阵作为图形。
需要安装networkx和 matplotlib。
示例输出: