numpy生成对角矩阵
时间: 2023-10-09 16:05:33 浏览: 223
使用numpy中的diag函数可以生成对角矩阵。
例如,生成一个3x3的对角矩阵,对角线上的元素为1:
```
import numpy as np
diag_matrix = np.diag([1, 1, 1])
print(diag_matrix)
```
输出结果为:
```
[[1 0 0]
[0 1 0]
[0 0 1]]
```
其中,np.diag函数接受一个一维数组作为参数,数组中的元素将被放在对角线上。如果需要生成非对角线上的元素不为0的对角矩阵,可以将需要放置在对角线上的元素以二维数组的形式传递给np.diag函数,例如:
```
diag_matrix = np.diag([[1, 2], [3, 4]])
print(diag_matrix)
```
输出结果为:
```
[[1 0]
[0 2]
[0 0]
[0 0]]
```
其中,二维数组中的元素将被放在对角线上,非对角线上的元素为0。
相关问题
numpy生成对角阵
以下是使用numpy生成对角阵的两种方法:
1.使用numpy.diag函数生成对角阵:
```python
import numpy as np
# 生成对角阵
arr = np.diag([1, 2, 3])
print(arr)
```
输出:
```
array([[1, 0, 0],
[0, 2, 0],
[0, 0, 3]])
```
2.使用numpy.diagflat函数生成对角阵:
```python
import numpy as np
# 生成对角阵
arr = np.diagflat([[1, 2], [3, 4]])
print(arr)
```
输出:
```
array([[1, 0, 0, 0],
[0, 2, 0, 0],
[0, 0, 3, 0],
[0, 0, 0, 4]])
```
numpy生成单位矩阵
可以使用numpy的eye函数来生成一个单位矩阵,示例如下:
```python
import numpy as np
# 生成一个3x3的单位矩阵
I = np.eye(3)
print(I)
```
输出结果:
```
array([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])
```
其中,np.eye函数的第一个参数表示矩阵的行数和列数,第二个参数(可选)表示矩阵的偏移量,默认为0,即主对角线上的元素为1。
阅读全文