BEE1038:经济学数据科学导论
在这项任务中,你将展示你对编程的理解和掌握Python使用数据科学工具。到第6/7周结束时,你将学到的东西几乎涵盖了你所需要的一切,你所学到的已经足够着手解决一些问题了。如果你被卡住了再读一遍笔记本。如果你仍然不确定,那就上网看看。谷歌和Stack OverFlow是你的朋友!这项作业的成绩占你课程总成绩的30%。这个
需要显示以下方面:
● 基本Python代码和函数
● NumPy数组和Pandas数据帧的操作和计算
● 准备和预处理数据。
● 进行基本绘图,并更改绘图标记、颜色等。
● 改进和扩展分析。
● 在完成时能够详细说明您的方法并解释您的基本原理
分配
您提交的文件将是一个压缩文件(.zip),其中包含以下文件:
1.名为your_name_solution.ipynb的Python脚本副本(在Jupyter中完成笔记本例如,我的笔记本文件将命名为cecilia_chen_solution.ipynb。
2.打印为PDF的相同副本,your_name_solution_code.PDF。查看此链接关于将Jupyter Notebok导出为PDF的说明。
3.你最终绘图的三张.png图像:一张复制了问题4中的绘图(p4.png),一个复制问题5(H)(p5h.png)中的图,以及显示任何
问题6中的附加分析(p6a.png等)。您必须使用代码中的标记和/或注释来解释您的方法和原理。任何没有适当解释的块代码或结果都将被分组。您的脚本必须要足够复制你对所有问题和情节的回答。你有责任确保您的Jupyter Notebook文件打开时不会出现错误。没有的提交open可以接收零。协作与不当行为:鼓励你分组思考或询问互相寻求帮助。如果你这样做了,你应该做以下事情:1)编写你自己的代码(没有代码从他人那里复制),2)在提交的材料中报告与您共事的所有人员的姓名,
3) 如果你得到了别人的帮助,写得很清楚,4)抄袭代码或写作会不能容忍;代 写BEE1038不要在你的答案中复制代码块,5)不要发布你的解决方案在线(甚至在你的分数发布后)。对于那些想证明你经历的人对于招聘人员,确保你共享一个项目/工作的私人链接(或不可发现的链接)。如果我们可以随时在网上找到你的答案,直到今年9月,你将被举报不当行为该大学非常重视不良学术行为和学术不端行为,并期望所有学生的行为都要遵守学术诚信的原则。请确保您熟悉此链接1中的一般指南和规则链接2.
问题1[15分]
编写一个接受数字n作为输入的函数,它返回n行,这些行看起来像以下模式。在n=21的情况下运行函数(下面的输出是n=12和n=21)。n=12时输出n=21时输出
问题2[15分]
解决以下所有问题。
A.编写一个函数,调用min_dinstance(),将整数列表作为输入返回该列表中任意两个数字之间的最小(绝对)差。例如,min_distance([5,9,1,3])应返回2而min_distance([3,4,1,1])应返回0
B.使用您创建的min_dinstance()函数,创建另一个函数max_min_dinstance(),它将整数列表列表作为输入,并返回
在内部列表上计算的所有最小距离值中的最大值(每个内部列表的min_dinstance()的输出)。例如,max_min_distance([[5,9,1,3],[3,4,1,1]])应返回2
C.证明您的max_min_distance()函数在以下输入上运行良好:[[5,2,1,6],[10,0,4],[9,18,1],[100,100,27,9,18],[28,30]]
D.将NumPy随机种子设置为99(使用随机生成器方法:numpy.rrandom.default_rng(种子))。生成大小为1000的一维NumPy数组
由0和3000之间的随机整数组成(两者都包括在内)。重塑此阵列的形状将50行的二维阵列(即50x20)。在此输入上测试您的功能。
E.使用%timeit函数计算max_min_dinstance()算法的时间根据D的输入运行。
问题3[20分]
A.将NumPy随机种子设置为120。
B.创建一个3x20x5的随机整数数组(3个深度,20行,5列)
-20和100(均包含在内)并打印。C.对于这一部分,考虑阵列的第一个深度(即,第一个维度为0)。打印在(第一深度的)每列中严格大于60的元素的数量。
D.对于这一部分,考虑阵列的第三个深度(即,第一个维度为2)。打印包含任何正值的行数(第三深度)。
问题4[20分]
在这个问题中,您需要尽可能准确地从划痕首先,您需要生成x轴数据,并使用图例中所示的简单函数计算两个系列的yaxis数据。
问题5[20分]
在这个问题中,您将使用一个名为harrypotter_dataset的数据集。请按照说明操作下面是您的数据分析。
A.在笔记本中加载harrypotter_dataset.csv文件,然后打印数据集。打印行数。
B.打印数据集的列标题。
C.您会注意到列标题有不必要的前导空格(例如“Book指数编写代码以删除数据集中每个列名的前导空格,将列名之间的空格替换为_,并转换所有列标题到小写。保存对数据帧的更改。重新运行B中的代码以确保它得到解决现在例如,原始列名为“图书索引”。应该是“book_index”最后。
D.使用列“runtime(in minutes)”创建一个新列:“runtime_in_hours”。这个新列应该有浮点数(例如150分钟到2.5小时)。E.创建一个新列:“is_same_date_uk_us”:布尔值(True:“英国电影上映日期”为与“美国电影上映日期”相同,错误:否则)
F.计算以下内容:
a.假设你选择随机阅读其中一本书的一章。什么这一章属于第7本书的概率是多少?(提示:编写代码将第7册中的章节数除以章节)
b.假设你随机选择看其中一部电影的一分钟。是什么它属于以下电影之一的概率是第1部、第3部、第5部还是第7部?
c.两者在同一日期上映的电影所占的百分比是多少英国和美国?
G.创建一个新的数据框架df_nineties,其中包含书籍的数据(所有列)2000年之前发行,即“图书发行年”严格小于2000年。
H.复制以下情节:你会得到分数,因为复制情节准确到可能的情况下,考虑到为达到最终数字所采取的步骤。
问题6[10分]
对于这个问题,使用问题5中的相同数据进行令人信服的额外分析。也许可以使用harrypotter_dataset数据集中的其他列。你会得到分数如果你发现了一个引人注目且有趣的视觉效果(一个情节就足够了,但你可以制作如果它们都被捆绑在一个主要思想中,那么你想要多少就多少)。确保提供文本
绘图的描述和/或分析。您还可以收集额外的数据来称赞您的分析。例如,您可以向数据集中添加新列,例如强制转换列表。请确定写下您收集的额外数据的来源。