-
numpy.diag_indices(n, ndim=2)
[source] -
Return the indices to access the main diagonal of an array.
This returns a tuple of indices that can be used to access the main diagonal of an array
a
witha.ndim >= 2
dimensions and shape (n, n, ..., n). Fora.ndim = 2
this is the usual diagonal, fora.ndim > 2
this is the set of indices to accessa[i, i, ..., i]
fori = [0..n-1]
.Parameters: n : int
The size, along each dimension, of the arrays for which the returned indices can be used.
ndim : int, optional
The number of dimensions.
See also
Notes
New in version 1.4.0.
Examples
Create a set of indices to access the diagonal of a (4, 4) array:
123456789101112131415>>> di
=
np.diag_indices(
4
)
>>> di
(array([
0
,
1
,
2
,
3
]), array([
0
,
1
,
2
,
3
]))
>>> a
=
np.arange(
16
).reshape(
4
,
4
)
>>> a
array([[
0
,
1
,
2
,
3
],
[
4
,
5
,
6
,
7
],
[
8
,
9
,
10
,
11
],
[
12
,
13
,
14
,
15
]])
>>> a[di]
=
100
>>> a
array([[
100
,
1
,
2
,
3
],
[
4
,
100
,
6
,
7
],
[
8
,
9
,
100
,
11
],
[
12
,
13
,
14
,
100
]])
Now, we create indices to manipulate a 3-D array:
123>>> d3
=
np.diag_indices(
2
,
3
)
>>> d3
(array([
0
,
1
]), array([
0
,
1
]), array([
0
,
1
]))
And use it to set the diagonal of an array of zeros to 1:
1234567>>> a
=
np.zeros((
2
,
2
,
2
), dtype
=
np.
int
)
>>> a[d3]
=
1
>>> a
array([[[
1
,
0
],
[
0
,
0
]],
[[
0
,
0
],
[
0
,
1
]]])
numpy.diag_indices()

2025-01-10 15:47:30
Please login to continue.