📌  相关文章
📜  用于计算二进制矩阵中 1 和 0 集合的Python程序(1)

📅  最后修改于: 2023-12-03 14:56:22.404000             🧑  作者: Mango

用于计算二进制矩阵中 1 和 0 集合的Python程序

本程序用于统计二进制矩阵中每行和每列中 1 和 0 的数量,便于后续分析和处理。以下是完整代码和解释。

def count_ones_zeros(matrix):
    """
    计算二进制矩阵中每行和每列中 1 和 0 的数量
    :param matrix: 二进制矩阵,由0和1组成的列表,每个元素为一行
    :return: 包含两个字典的元组,第一个字典记录每行中1和0的数量,第二个记录每列中1和0的数量
    """
    rows = len(matrix)  # 获取矩阵行数
    cols = len(matrix[0])  # 获取矩阵列数
    row_count = {"ones": [], "zeros": []}  # 记录每行中1和0的数量
    col_count = {"ones": [], "zeros": []}  # 记录每列中1和0的数量

    # 统计每行中1和0的数量
    for i in range(rows):
        ones_count = 0
        zeros_count = 0
        for j in range(cols):
            if matrix[i][j] == 1:
                ones_count += 1
            else:
                zeros_count += 1
        row_count["ones"].append(ones_count)
        row_count["zeros"].append(zeros_count)

    # 统计每列中1和0的数量
    for j in range(cols):
        ones_count = 0
        zeros_count = 0
        for i in range(rows):
            if matrix[i][j] == 1:
                ones_count += 1
            else:
                zeros_count += 1
        col_count["ones"].append(ones_count)
        col_count["zeros"].append(zeros_count)

    return row_count, col_count

解释:

  1. count_ones_zeros 函数用于计算二进制矩阵中每行和每列中 1 和 0 的数量。
  2. 参数 matrix 为二进制矩阵,由0和1组成的列表,每个元素为一行。
  3. 返回值为包含两个字典的元组,分别记录每行中 1 和 0 的数量和每列中 1 和 0 的数量。
  4. 通过获取矩阵的行数和列数,分别统计每行和每列中的 1 和 0 的数量,并将结果记录在相应的字典中。
  5. 当元素为 1 时,对相应计数器加一,否则对另一个计数器加一。最终返回记录结果的字典。

以下为示例测试代码:

matrix = [[1, 0, 1], [0, 1, 0], [1, 0, 0]]
row_count, col_count = count_ones_zeros(matrix)
print("每行中1的数量:", row_count["ones"])
print("每行中0的数量:", row_count["zeros"])
print("每列中1的数量:", col_count["ones"])
print("每列中0的数量:", col_count["zeros"])

输出结果:

每行中1的数量: [2, 1, 1]
每行中0的数量: [1, 2, 2]
每列中1的数量: [2, 1, 1]
每列中0的数量: [1, 2, 2]

以上就是用于计算二进制矩阵中 1 和 0 集合的Python程序,希望能对程序员们有所帮助。