• Numpy数组计算实训


    实训1 使用数组比较运算对超市牛奶价格进行对比

    1.训练要点

    1. 掌握Numpy的数组创建方法
    2. 掌握数组的比较运算方法

    2.需求说明

    某两个超市均销售了5种相同的牛奶产品,为了对比A、B两个超市中5种牛奶产品的价格,创建milk_a和milk_b两个一维数组,分别存放两个超市的牛奶价格,对两个数组中存放的价格进行比较运算。

    3.实现思路及步骤

    1. 1.创建A超市的牛奶价格数组milk_a为[19.9,25,29.9,45,39.9]
    2. 创建A超市的牛奶价格数组milk_b为[18.9,25,24.9,49,35.9]
    3. 使用大于符号对milk_a和milk_b进行比较运算

    代码:

    1. import numpy as np
    2. milk_a = np.array([19.9, 25, 29.9, 45, 39.9])
    3. milk_b = np.array([18.9, 25, 24.9, 49, 35.9])
    4. # 使用大于符号(>)对两个数组进行比较
    5. comparison_result = milk_a > milk_b
    6. print(comparison_result)

    实训2 创建6✖6的简单数独游戏矩阵

    1.训练要点

    1. 掌握矩阵创建方法
    2. 掌握数组索引的使用方法

    2.需求说明

    数独是一种数学智力填空游戏,数独的玩法逻辑简单,数字排列方式多种多样,是一种锻炼大脑的游戏。为了使学生了解数独游戏的玩法,需要创建6✖6的数独游戏,填充6✖6矩阵。矩阵每一行的数字为1~6且不能重复,每一列的数字同样为1~6且不能重复。

    3.解决方法

    1. import numpy as np
    2. def is_valid(board, row, col, num):
    3. # 检查行是否合法
    4. if num in board[row]:
    5. return False
    6. # 检查列是否合法
    7. if num in board[:, col]:
    8. return False
    9. # 检查3x2小矩阵是否合法
    10. if num in board[row - row % 3:row - row % 3 + 3, col - col % 2:col - col % 2 + 2]:
    11. return False
    12. return True
    13. def solve_sudoku(board):
    14. for row in range(6):
    15. for col in range(6):
    16. if board[row][col] == 0:
    17. for num in range(1, 7):
    18. if is_valid(board, row, col, num):
    19. board[row][col] = num
    20. if solve_sudoku(board):
    21. return True
    22. board[row][col] = 0
    23. return False
    24. return True
    25. # 创建一个6x6的空数独游戏矩阵
    26. sudoku_board = np.zeros((6, 6), dtype=int)
    27. # 填充数独矩阵
    28. solve_sudoku(sudoku_board)
    29. print(sudoku_board)

    要创建4个相同的3x3对角矩阵,对角线元素分别为[1, 2, 3],然后将它们合并为一个6x6的新矩阵,您可以使用NumPy库来完成这个任务。首先,我们将创建一个3x3的对角矩阵,然后使用np.block函数将这些矩阵堆叠在一起,以创建一个6x6的新矩阵。

    代码:

    1. import numpy as np
    2. # 创建一个3x3的对角矩阵,对角线元素为[1, 2, 3]
    3. diagonal_matrix = np.diag([1, 2, 3])
    4. # 使用np.block函数堆叠四个相同的3x3对角矩阵
    5. block_matrix = np.block([[diagonal_matrix, np.zeros((3, 3))],
    6. [np.zeros((3, 3)), diagonal_matrix]])
    7. print(block_matrix)

    再将上述矩阵转置

    代码:

    transposed_matrix = block_matrix.T
    

    或者

    transposed_matrix = np.transpose(block_matrix)
    

    完整代码:

    1. import numpy as np
    2. # 创建一个3x3的对角矩阵,对角线元素为[1, 2, 3]
    3. diagonal_matrix = np.diag([1, 2, 3])
    4. # 使用np.block函数堆叠四个相同的3x3对角矩阵
    5. block_matrix = np.block([[diagonal_matrix, np.zeros((3, 3))],
    6. [np.zeros((3, 3)), diagonal_matrix]])
    7. # 输出合并后的6x6矩阵
    8. print("合并后的6x6矩阵:")
    9. print(block_matrix)
    10. # 获取矩阵的转置
    11. transposed_matrix = block_matrix.T
    12. # 输出转置矩阵
    13. print("\n转置矩阵:")
    14. print(transposed_matrix)

     

     

  • 相关阅读:
    社区版MyApps低代码平台,免费即刻拥有!
    Pytorch 之torch.nn初探 池化--Pooling Layers
    MyBatis(一)--------十分灵活
    【腾讯云Cloud Studio实战训练营】Cloud Studio 快速搭建学习分享
    B50 - 基于51单片机的儿童成长管理系统
    扫盲Kafka?看这一篇就够了!
    java计算机毕业设计宿舍管理系统源程序+mysql+系统+lw文档+远程调试
    百度前端二面常考手写面试题总结
    【Linux】搞懂进程地址空间
    LeetCode-车队
  • 原文地址:https://blog.csdn.net/m0_58232983/article/details/132722908