首页 > 其他分享 >大数据分析与可视化 之 实验02 Numpy创建数组

大数据分析与可视化 之 实验02 Numpy创建数组

时间:2023-12-30 19:56:26浏览次数:40  
标签:02 10 创建 矩阵 print 可视化 np Numpy

实验02 Numpy创建数组

实验学时:2学时
实验类型:验证
实验要求:必修

一、实验目的

  1. 掌握Numpy创建数组的方法
  2. 掌握Numpy ndarray的属性、运算
  3. 掌握Numpy迭代数值,修改数组中元素的值
  4. 掌握Numpy常用函数的使用方法

二、实验要求

使用Numpy.array的构造函数创建数组,学会使用Numpy ndarray的属性、运算,掌握Numpy迭代数值,修改数组中元素的值等常用操作。

三、实验内容

任务1. (1)创建一个元素为10到50的10个随机整数的ndarray对象。
(2)创建一个范围在(0,1)之间的长度为6的等差数列。
用Python与第三方库numpy编写程序实现。

任务2. (1)创建一个每一行都是从0到4的55矩阵。
(2)创建一个8
8的ndarray对象,且矩阵边界全为5,里面主对角线为1,其余为0的矩阵。
(3)创建一个平均值为70,标准差为5的43个同学的Python语言程序设计成绩的随机分数。
用Python与第三方库numpy编写程序实现。

任务3. (1)为43个同学随机生成5门课程的成绩(分数在1~100之间)。
(2)求第2门课程的平均分(mean函数)和第8个同学的总分(sum函数)。
(3)统计第3门课程不及格的人数(len函数)。
用Python与第三方库numpy编写程序实现。

任务4. 某人走了2000步(每步0.5米),向前走了一步记为1,向后走一步记为-1,当计算距原点的距离时,就是将所有的步数进行累计求和。用Python与第三方库numpy编写程序实现。

任务5. 从一个10行10列的矩阵中提取出连续的3行3列区块。用Python与第三方库numpy编写程序实现。(提示:使用np.lib.stride_tricks.as_strided()是矩阵分块函数)

任务6. 绘制曼德勃罗花。用Python与第三方库numpy编写程序实现。
image

参考源代码:
image

课外练习:
任务7. 一万人参与厦门市政府组织的万人博饼庆中秋活动,每人只能博一次。用numpy分析博得状元的概率。用Python与第三方库numpy编写程序实现。

test2.py

import numpy as np
import matplotlib.pyplot as plt


def task1():
    # 创建一个元素为10到50的10个随机整数的ndarray对象
    arr1 = np.random.randint(10, 51, 10)

    # 创建一个范围在(0,1)之间的长度为6的等差数列
    arr2 = np.linspace(0, 1, 6)

    print("随机整数数组:", arr1)
    print("等差数列数组:", arr2)


def task2():
    # 创建一个每一行都是从0到4的5*5矩阵
    matrix1 = np.tile(np.arange(5), (5, 1))

    # 创建一个8*8的ndarray对象,且矩阵边界全为5,里面主对角线为1,其余为0的矩阵
    matrix2 = np.zeros((8, 8))
    matrix2[0, :] = matrix2[:, 0] = matrix2[-1, :] = matrix2[:, -1] = 5
    np.fill_diagonal(matrix2, 1)

    # 创建一个平均值为70,标准差为5的43个同学的Python语言程序设计成绩的随机分数
    scores = np.random.normal(70, 5, 43)

    print("矩阵1:\n", matrix1)
    print("矩阵2:\n", matrix2)
    print("随机分数:", scores)


def task3():
    # 为43个同学随机生成5门课程的成绩(分数在1~100之间)
    np.random.seed(0)
    grades = np.random.randint(1, 101, (43, 5))

    # 求第2门课程的平均分和第8个同学的总分
    mean_grade = np.mean(grades[:, 1])
    total_grade = np.sum(grades[7, :])

    # 统计第3门课程不及格的人数
    failed_count = len(grades[grades[:, 2] < 60])

    print("成绩矩阵:\n", grades)
    print("第2门课程的平均分:", mean_grade)
    print("第8个同学的总分:", total_grade)
    print("第3门课程不及格的人数:", failed_count)


def task4():
    steps = np.array([1, -1])
    walk = np.random.choice(steps, 2000)
    distance = np.sum(walk) * 0.5

    print("距离原点的距离:", distance)


def task5():
    # 创建一个10行10列的矩阵
    matrix = np.arange(100).reshape(10, 10)

    # 提取连续的3行3列区块
    blocks = np.lib.stride_tricks.as_strided(matrix, shape=(8, 8, 3, 3), strides=matrix.strides + matrix.strides)

    print("矩阵:\n", matrix)
    print("连续的3行3列区块:\n", blocks)


def task6():
    def mandelbrot(c, max_iter):
        z = c
        for i in range(max_iter):
            if abs(z) > 2:
                return i
            z = z * z + c
        return max_iter

    def mandelbrot_set(xmin, xmax, ymin, ymax, width, height, max_iter):
        r1 = np.linspace(xmin, xmax, width)
        r2 = np.linspace(ymin, ymax, height)
        return (r1, r2, np.array([[mandelbrot(complex(r, i), max_iter) for r in r1] for i in r2]))

    # 设置绘图参数
    xmin, xmax, ymin, ymax = -2.0, 1.0, -1.5, 1.5
    width, height = 1000, 1000
    max_iter = 256

    # 生成曼德勃罗集合数据
    x, y, m_set = mandelbrot_set(xmin, xmax, ymin, ymax, width, height, max_iter)

    # 绘制曼德勃罗花图像
    plt.figure(figsize=(10, 10))
    plt.imshow(m_set.T, extent=(xmin, xmax, ymin, ymax), cmap='hot')
    plt.xlabel('Re')
    plt.ylabel('Im')
    plt.title('Mandelbrot Set')
    plt.show()


def task7():
    np.random.seed(0)

    # 模拟一万人的博饼结果
    rolls = np.random.choice(6, (10000, 4)) + 1

    # 计算每一次博饼是否获得状元
    is_champion = np.sum(rolls == 6, axis=1) == 4

    # 计算获得状元的概率
    champion_probability = np.mean(is_champion)

    print("获得状元的概率:", champion_probability)


if __name__ == '__main__':
    task1()
    task2()
    task3()
    task4()
    task5()
    task6()
    task7()

标签:02,10,创建,矩阵,print,可视化,np,Numpy
From: https://www.cnblogs.com/IvanKK/p/17936719

相关文章

  • 大数据分析与可视化 之 实验03 Numpy实现数据分析
    实验03Numpy实现数据分析实验学时:2学时实验类型:验证实验要求:必修一、实验目的掌握Numpy的字符串函数掌握Numpy统计函数掌握Numpy排序、分组、线性代数函数二、实验要求通过编程实现使用Numpy字符串函数进行文本处理,使用统计函数进行数据分析等常用操作。三、实验内......
  • *035共情营邱月帮-第17次课(周六晚上-AB对练-)-20231230
      20221212--20221230期间每周一、四、五上正课,三、六是对答疑、对练课。 打开心灵,改变从自己开始,一起抱团取暖。《相信相信的力量》----------------------------------------------------------------------------------------------------------------(周六)-202312......
  • 大数据分析与可视化 之 实验04 Pandas基础
    实验04Pandas基础实验学时:2学时实验类型:验证实验要求:必修一、实验目的1.掌握pandas系列、数据帧和面板的使用2.掌握pandas基本功能和操作二、实验要求Pandas程序的运行步骤。2.pandas的数据结构3.pandas系列、数据帧和面板pandas基本功能和操作三、实验内容任务1.......
  • 2023-12-30
    packagecom.example.backendmanage.controller;importcom.example.backendmanage.common.AjaxResult;importcom.example.backendmanage.info.Role;importcom.example.backendmanage.mapper.RoleMapper;importorg.springframework.beans.factory.annotation.Autowired;imp......
  • 大数据分析与可视化 之 实验01 Python爬虫
    实验01Python爬虫实验学时:2学时实验类型:验证实验要求:必修一、实验目的理解爬虫技术掌握正则表达式、网络编程掌握re、socket、urllib、requests、lxml模块及其函数的使用二、实验要求 分析所需爬取信息网页的源代码,使用re、socket、urllib、requests、lxml模块及其函......
  • 跨境电商迎来综合竞争力比拼时代 五大趋势解读跨境2024
    过去几年,跨境电商成为外贸出口增长的一大亮点,随着年底国务院办公厅《关于加快内外贸一体化发展的若干措施》的发布,跨境电商在促进经济发展、助力内外贸一体化发展方面的价值更加凸显。这是跨境电商变化最快的时代,也是跨境电商发展最好的时代,2023年,以TikTokShop、SHEIN、Temu以及Al......
  • 学期2023-2024-1 20231417 《计算机基础与程序设计》第十四周学习总结
    学期2023-2024-120231417《计算机基础与程序设计》第十四周学习总结作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第十四周作业这个作业的目标《C语言程序设计》第13章并完成云班课测试作......
  • OI练习记录 - 29/12/2023
    zzz习题1917CWateringanArray题目传送门代码RatingTags1600bruteforce这题没什么好说的,难点只在于要发现进行一次operation2后最优情况是一直重复operation1,2,1,2...因为把边界误判为\(\min(d,n)\)而不是\(\min(d,2n)\)而耗了一些时间时间......
  • 2023-2024-1 20231419 《计算机基础与程序设计》第十四周学习总结
    2023-2024-120231419《计算机基础与程序设计》第十四周学习总结作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK14这个作业的目标自学《C语言程序设......
  • 【Python爬虫课程设计】rottentomatoes爬取+数据可视化
    一、选题背景选择此选题的原因是为了进行电影数据的分析。电影作为一种重要的文化娱乐形式,对社会、经济和文化等方面都有着重要的影响。通过对电影数据的分析,可以揭示电影产业的发展趋势、观众喜好、电影市场的竞争情况等,为电影行业的决策制定提供依据。二、主题式网络爬虫设计......