给我一段生成8*100的矩阵,其中每行10个0,其他元素全为1的python代码,要求0的位置随机分布
时间: 2024-09-07 21:06:05 浏览: 68
python 判断矩阵中每行非零个数的方法
要生成一个8*100的矩阵,其中每行有10个0,其余元素全为1,并且0的位置随机分布,可以使用Python的NumPy库来实现。下面是一个示例代码:
```python
import numpy as np
# 定义矩阵的行数和列数
rows, cols = 8, 100
# 计算每行中0的数量
zeros_per_row = 10
# 创建一个全为1的矩阵
matrix = np.ones((rows, cols), dtype=int)
# 遍历每一行,随机选择10个位置填充0
for row in range(rows):
# 随机生成10个不重复的索引,范围在0到cols之间
cols_to_zero = np.random.choice(range(cols), zeros_per_row, replace=False)
# 将选中的位置填充为0
matrix[row, cols_to_zero] = 0
# 输出生成的矩阵
print(matrix)
```
在这段代码中,首先创建了一个8行100列的全1矩阵。然后,对每一行进行遍历,使用`np.random.choice`函数随机选择不重复的10个列索引,并将这些位置的值设置为0。最后打印出生成的矩阵。
阅读全文