1 前言
Python的索引真的很强大,不愧是科学计算第一语言。但是我还是更喜欢Java呀!哈哈哈~
希望Java未来也可以支持索引数组~
2 Youki使用索引快速为数组或矩阵赋值的技巧
2.1 构造索引数组获取对角线元素构成的数组
今天在学习CV的时候,需要对矩阵的对角线元素进行赋值,那么首先需要解决的是需要获得矩阵的对角线元素,
用循环是可以的,不过代码会显得比较冗余,
用索引数组也是可以实现的,最重要的是需要构造行号和列号相对应的索引数组,
以获得1~n行的对角线元素为例,则行号索引为np.arange(n),相应的列号索引为np.arange(n),
这样讲行号与列号的索引数组放入矩阵中,即可获得其1~n行的对角线元素,示例代码如下:
import numpy as np
img= np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
img[np.arange(3),np.arange(3)]
测试效果如图所示,
测试成功!