有一个`4`行`4`列的数组(比如:`np.random.randint(0,10,size=(4,4))`),请将其中对角线的数取出来形成一个一维数组。提示(使用`np.eye`)。
时间: 2024-09-08 20:02:12 浏览: 79
np.random一系列(np.random.normal()、np.random.randint、np.random.randn、np.random.rand)
在Python中,你可以使用NumPy库来处理这样的数组操作。首先,你需要创建一个4行4列的随机整数数组。然后,你可以使用`np.eye`函数来获取一个4行4列的单位矩阵,单位矩阵的对角线元素为1,其余为0。接着,将这个单位矩阵与你创建的随机数组相乘,这样就可以得到一个新的数组,其对角线上的元素是原数组的对角线元素,其余位置上的元素则为0。最后,你可以沿着某一个轴(例如第一个轴)将这个数组求和,从而得到一个一维数组,该一维数组中包含了原数组的对角线元素。
以下是具体的Python代码示例:
```python
import numpy as np
# 创建一个4x4的随机整数数组
arr = np.random.randint(0, 10, size=(4, 4))
# 创建一个4x4的单位矩阵
eye = np.eye(4)
# 将随机数组与单位矩阵相乘
diagonal_product = arr * eye
# 将结果数组沿着第一个轴求和,提取对角线元素
diagonal = diagonal_product.sum(axis=0)
# 输出一维数组
print(diagonal)
```
这段代码将输出一个包含原数组对角线上元素的一维数组。
阅读全文