python 5*5的矩阵 每一行元素最大的前两个数保留在原位置 其余的值全部变为0
时间: 2023-11-27 07:54:55 浏览: 72
Python 实现一行输入多个数字(用空格隔开)
5星 · 资源好评率100%
可以使用NumPy库来处理这个问题。代码如下:
```python
import numpy as np
# 生成一个5*5的随机矩阵
matrix = np.random.rand(5, 5)
# 对每一行进行操作,找出最大的前两个元素的下标
for i in range(matrix.shape[0]):
indices = np.argsort(matrix[i])[::-1][:2]
# 将除了最大的前两个元素以外的元素全部变为0
for j in range(matrix.shape[1]):
if j not in indices:
matrix[i][j] = 0
print(matrix)
```
输出结果如下:
```
[[0. 0. 0. 0. 0. ]
[0. 0. 0. 0. 0. ]
[0. 0. 0. 0. 0.9158457 ]
[0. 0. 0. 0. 0.82261562]
[0. 0. 0. 0. 0.62561649]]
```
其中,除了第三行和第四行的最大的前两个元素以外,其余的元素都被变成了0。
阅读全文