Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation Python
Les fondamentaux
Voir le programme détaillé
Module « scipy.sparse »

Fonction diags_array - module scipy.sparse

Signature de la fonction diags_array

def diags_array(diagonals, /, *, offsets=0, shape=None, format=None, dtype=None) 

Description

help(scipy.sparse.diags_array)

Construct a sparse array from diagonals.

Parameters
----------
diagonals : sequence of array_like
    Sequence of arrays containing the array diagonals,
    corresponding to `offsets`.
offsets : sequence of int or an int, optional
    Diagonals to set (repeated offsets are not allowed):
      - k = 0  the main diagonal (default)
      - k > 0  the kth upper diagonal
      - k < 0  the kth lower diagonal
shape : tuple of int, optional
    Shape of the result. If omitted, a square array large enough
    to contain the diagonals is returned.
format : {"dia", "csr", "csc", "lil", ...}, optional
    Matrix format of the result. By default (format=None) an
    appropriate sparse array format is returned. This choice is
    subject to change.
dtype : dtype, optional
    Data type of the array.

Notes
-----
Repeated diagonal offsets are disallowed.

The result from `diags_array` is the sparse equivalent of::

    np.diag(diagonals[0], offsets[0])
    + ...
    + np.diag(diagonals[k], offsets[k])

``diags_array`` differs from `dia_array` in the way it handles off-diagonals.
Specifically, `dia_array` assumes the data input includes padding
(ignored values) at the start/end of the rows for positive/negative
offset, while ``diags_array` assumes the input data has no padding.
Each value in the input ``diagonals`` is used.

.. versionadded:: 1.11

Examples
--------
>>> from scipy.sparse import diags_array
>>> diagonals = [[1, 2, 3, 4], [1, 2, 3], [1, 2]]
>>> diags_array(diagonals, offsets=[0, -1, 2]).toarray()
array([[1., 0., 1., 0.],
       [1., 2., 0., 2.],
       [0., 2., 3., 0.],
       [0., 0., 3., 4.]])

Broadcasting of scalars is supported (but shape needs to be
specified):

>>> diags_array([1, -2, 1], offsets=[-1, 0, 1], shape=(4, 4)).toarray()
array([[-2.,  1.,  0.,  0.],
       [ 1., -2.,  1.,  0.],
       [ 0.,  1., -2.,  1.],
       [ 0.,  0.,  1., -2.]])


If only one diagonal is wanted (as in `numpy.diag`), the following
works as well:

>>> diags_array([1, 2, 3], offsets=1).toarray()
array([[ 0.,  1.,  0.,  0.],
       [ 0.,  0.,  2.,  0.],
       [ 0.,  0.,  0.,  3.],
       [ 0.,  0.,  0.,  0.]])



Vous êtes un professionnel et vous avez besoin d'une formation ? Coder avec une
Intelligence Artificielle
Voir le programme détaillé