python 10*10的矩阵 每一行元素最大的前四个数保留在原位置 其余的值全部变为0
时间: 2023-11-27 07:54:22 浏览: 85
python查看矩阵的行列号以及维数方式
可以使用 NumPy 库来实现该功能,具体代码如下:
```python
import numpy as np
# 生成随机矩阵
matrix = np.random.randint(0, 100, size=(10, 10))
# 每一行元素最大的前四个数的索引
max_indexes = np.argpartition(-matrix, kth=4, axis=1)[:, :4]
# 将除最大的前四个数以外的值全部置为0
for i in range(len(matrix)):
mask = np.ones(len(matrix[i]), dtype=bool)
mask[max_indexes[i]] = False
matrix[i][mask] = 0
# 打印结果
print(matrix)
```
其中,`np.argpartition` 函数用于找到每一行元素最大的前四个数的索引,`-matrix` 表示取反,这样就可以得到最大的前四个数的索引了。然后,我们将除最大的前四个数以外的值全部置为0。最后,打印结果即可。
阅读全文