📅  最后修改于: 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]]]