mirror of
https://github.com/apachecn/ailearning.git
synced 2026-02-10 22:05:11 +08:00
141 lines
1.2 KiB
Markdown
141 lines
1.2 KiB
Markdown
# 对角线
|
||
|
||
这里,使用与之前不同的导入方法:
|
||
|
||
In [1]:
|
||
|
||
```py
|
||
import numpy as np
|
||
|
||
```
|
||
|
||
使用numpy中的函数前,需要加上 `np.`:
|
||
|
||
In [2]:
|
||
|
||
```py
|
||
a = np.array([11,21,31,12,22,32,13,23,33])
|
||
a.shape = 3,3
|
||
a
|
||
|
||
```
|
||
|
||
Out[2]:
|
||
|
||
```py
|
||
array([[11, 21, 31],
|
||
[12, 22, 32],
|
||
[13, 23, 33]])
|
||
```
|
||
|
||
查看它的对角线元素:
|
||
|
||
In [3]:
|
||
|
||
```py
|
||
a.diagonal()
|
||
|
||
```
|
||
|
||
Out[3]:
|
||
|
||
```py
|
||
array([11, 22, 33])
|
||
```
|
||
|
||
可以使用偏移来查看它的次对角线,正数表示右移,负数表示左移:
|
||
|
||
In [4]:
|
||
|
||
```py
|
||
a.diagonal(offset=1)
|
||
|
||
```
|
||
|
||
Out[4]:
|
||
|
||
```py
|
||
array([21, 32])
|
||
```
|
||
|
||
In [5]:
|
||
|
||
```py
|
||
a.diagonal(offset=-1)
|
||
|
||
```
|
||
|
||
Out[5]:
|
||
|
||
```py
|
||
array([12, 23])
|
||
```
|
||
|
||
可以使用花式索引来得到对角线:
|
||
|
||
In [6]:
|
||
|
||
```py
|
||
i = [0,1,2]
|
||
a[i, i]
|
||
|
||
```
|
||
|
||
Out[6]:
|
||
|
||
```py
|
||
array([11, 22, 33])
|
||
```
|
||
|
||
可以更新对角线的值:
|
||
|
||
In [7]:
|
||
|
||
```py
|
||
a[i, i] = 2
|
||
a
|
||
|
||
```
|
||
|
||
Out[7]:
|
||
|
||
```py
|
||
array([[ 2, 21, 31],
|
||
[12, 2, 32],
|
||
[13, 23, 2]])
|
||
```
|
||
|
||
修改次对角线的值:
|
||
|
||
In [8]:
|
||
|
||
```py
|
||
i = np.array([0,1])
|
||
a[i, i + 1] = 1
|
||
a
|
||
|
||
```
|
||
|
||
Out[8]:
|
||
|
||
```py
|
||
array([[ 2, 1, 31],
|
||
[12, 2, 1],
|
||
[13, 23, 2]])
|
||
```
|
||
|
||
In [9]:
|
||
|
||
```py
|
||
a[i + 1, i] = -1
|
||
a
|
||
|
||
```
|
||
|
||
Out[9]:
|
||
|
||
```py
|
||
array([[ 2, 1, 31],
|
||
[-1, 2, 1],
|
||
[13, -1, 2]])
|
||
``` |