跳到内容

tril

返回一个数组,将 k 对角线上方的所有元素设为零。

参数

名称 类型 描述 默认值
x COO

输入数组。

必需
k int

元素被设为零的对角线。默认值为零,对应于主对角线。

0

返回值

类型 描述
COO

输出的下三角矩阵。

引发

类型 描述
ValueError

如果 x 不包含零填充值。

另请参阅
源代码位于 sparse/numba_backend/_coo/common.py
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
def tril(x, k=0):
    """
    Returns an array with all elements above the k-th diagonal set to zero.

    Parameters
    ----------
    x : COO
        The input array.
    k : int, optional
        The diagonal above which elements are set to zero. The default is
        zero, which corresponds to the main diagonal.

    Returns
    -------
    COO
        The output lower-triangular matrix.

    Raises
    ------
    ValueError
        If `x` doesn't have zero fill-values.

    See Also
    --------
    - [`numpy.tril`][] : NumPy equivalent function
    """
    from .core import COO

    check_zero_fill_value(x)

    if not x.ndim >= 2:
        raise NotImplementedError("sparse.tril is not implemented for scalars or 1-D arrays.")

    mask = x.coords[-2] + k >= x.coords[-1]

    coords = x.coords[:, mask]
    data = x.data[mask]

    return COO(coords, data, shape=x.shape, has_duplicates=False, sorted=True)