numpy.diag_indices(n,n_dim = 2):返回索引以便訪問最小維數= 2的數組的主對角線元素。以元組形式返回索引。
訪問數組的主對角線。
參數:
n : size of array, for which indices of diag elements are required along each dimension n_dim : [int, optional]number of dimensions.
返回:
Indices(as tuples) to access diagonal elements.
代碼1:
# Python Program illustrating
# working of diag_indices()
import numpy as geek
# Creates a 5 X 5 array and returns indices of
# main diagonal elements
d = geek.diag_indices(5)
print("Indices of diagnol elements as tuple : ")
print(d, "\n")
array = geek.arange(16).reshape(4,4)
print("Initial array : \n", array)
# Here we can manipulate diagonal elements
# by accessing the diagonal elements
d = geek.diag_indices(4)
array[d] = 25
print("\n New array : \n", array)
輸出:
Indices of diagnol elements as tuple : (array([0, 1, 2, 3, 4]), array([0, 1, 2, 3, 4])) Initial array : [[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11] [12 13 14 15]] New array : [[25 1 2 3] [ 4 25 6 7] [ 8 9 25 11] [12 13 14 25]]
代碼2:操縱2D數組
# Python Program illustrating
# working of diag_indices()
import numpy as geek
# Manipulating a 2D array
d = geek.diag_indices(3, 2)
array = geek.arange(12).reshape(4, 3)
array[d] = 111
print("Manipulated array : \n", array)
輸出:
Manipulated array : [[111 1 2] [ 3 111 5] [ 6 7 111] [ 9 10 11]]
代碼3:操縱3D陣列
# Python Program illustrating
# working of diag_indices()
import numpy as geek
# Setting diagonal indices
d = geek.diag_indices(1, 2)
print("Diag indices : \n", d)
# Creating a 3D array with all ones
array = geek.ones((2, 2, 2), dtype=geek.int)
print("Initial array : \n", array)
# Manipulating a 3D array
array[d] = 0
print("New array : \n", array)
輸出:
Diag indices : (array([0]), array([0])) Initial array : [[[1 1] [1 1]] [[1 1] [1 1]]] New array : [[[0 0] [1 1]] [[1 1] [1 1]]]
參考文獻:
https://docs.scipy.org/doc/numpy-dev/reference/generated/numpy.diag_indices.html
注意:
這些代碼無法在online-ID上運行。請在您的係統上運行它們以探索其工作原理。
相關用法
注:本文由純淨天空篩選整理自 numpy.diag_indices() in Python。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。