📜  Python中的numpy.diag_indices

📅  最后修改于: 2020-06-09 01:17:54             🧑  作者: Mango

numpy.diag_indices(n, n_dim = 2) : 返回索引,以便访问最小维数= 2的数组的主对角线元素。以元组形式返回索引。
访问数组的主对角线。

参数:

n:数组的大小,每个维度都需要diag元素的索引
n_dim:[int,可选]维数。

返回:

用于访问对角线元素的索引(作为元组)。

代码1:

# Python程序,说明diag_indices()的工作
  
import numpy as geek  
  
# 创建一个5 X 5数组并返回主要对角元素的索引 
d = geek.diag_indices(5) 
print("Indices of diagnol elements as tuple : ") 
print(d, "\n") 
  
array = geek.arange(16).reshape(4,4) 
print("初始数组 : \n", array) 
  
# 在这里,我们可以通过访问对角线元素来操纵对角线元素 
d = geek.diag_indices(4) 
array[d] = 25
print("\n 新数组 : \n", array) 

输出:

诊断元素的索引为元组:
(array([0,1,2,3,4]),array([0,1,2,3,4]))

初始数组:
 [[0 1 2 3] 
 [4 5 6 7] 
 [8 9 10 11] 
 [12 13 14 15]] 

 新数组:
 [[25 1 2 3] 
 [4 25 6 7] 
 [8 9 25 11] 
 [12 13 14 25]]

代码2:操纵2D数组

# Python程序,说明diag_indices()的工作
  
import numpy as geek  
  
# 操纵2D阵列  
d = geek.diag_indices(3, 2) 
  
array = geek.arange(12).reshape(4, 3) 
  
array[d] = 111
print("操纵阵列 : \n", array) 

输出:

操纵的数组:
 [[111 1 2] 
 [3 111 5] 
 [6 7 111] 
 [9 10 11]]

代码3:操纵3D阵列

# Python程序,说明diag_indices()的工作
  
import numpy as geek  
  
# 设置对角线索引 
d = geek.diag_indices(1, 2) 
print("诊断索引 : \n", d) 
  
# 全部创建3D阵列 
array = geek.ones((2, 2, 2), dtype=geek.int) 
print("初始数组 : \n", array) 
  
# 操纵3D阵列  
array[d] = 0
print("新书组 : \n", array) 

输出:

诊断索引:
 (array([0]),array([0]))
初始数组:
 [[[1 1] 
  [1 1]] 

 [[1 1] 
  [1 1]]] 
新数组:
 [[[0 0] 
  [1 1]] 

 [[1 1] 
  [1 1]]]