numpy的diag
时间: 2023-10-10 07:13:11 浏览: 242
Numpy-ref-1.10.1
在NumPy中,`np.diag()`函数用于提取或构造一个方阵的对角线元素,或者创建一个以给定的一数组作为对角线的方阵。它的语法下:
```python
numpy.diag(v k=0)
```
参数说明:
-v`:表示要提取或构造的方阵的对角线元素。可以是一维数组,也可以是一个数值。如果`v`是一个二维数组,函数将返回`v`的主对角线元素。
- `k`:表示对角线的偏移量。默认为0,表示主对角线。正值表示位于主对角线之上的对角线,负值表示位于主对角线之下的对角线。
除了上述参数之外,`np.diag()`函数还可以根据需要接受其他参数,如`dtype`(指定返回数组的数据类型)和`order`(指定数组元素的存储顺序)等。
以下是一些示例,展示了`np.diag()`函数的用法:
```python
import numpy as np
# 从矩阵中提取对角线元素
matrix = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
diagonal = np.diag(matrix)
print("Diagonal elements:", diagonal)
# 构造一个以给定数组作为对角线的方阵
arr = np.array([1, 2, 3])
diagonal_matrix = np.diag(arr)
print("\nDiagonal matrix:")
print(diagonal_matrix)
# 构造一个以给定偏移量的对角线方阵
offset_diagonal_matrix = np.diag(arr, k=1)
print("\nOffset diagonal matrix:")
print(offset_diagonal_matrix)
```
输出结果为:
```
Diagonal elements: [1 5 9]
Diagonal matrix:
[[1 0 0]
[0 2 0]
[0 0 3]]
Offset diagonal matrix:
[[0 1 0 0]
[0 0 2 0]
[0 0 0 3]
[0 0 0 0]]
```
在这个例子中,我们使用`np.diag()`函数从一个矩阵中提取了对角线元素,并构造了一个以给定数组为对角线的方阵。我们还演示了如何构造一个具有给定偏移量的对角线方阵。
阅读全文