Python数据分析及可视化,科学计算练习题

第一章 单元测试

1、 问题:数据分析是指通过分析手段、方法和技巧对准备好的数据进行探索、分析,从中发现因果关系、内部联系和业务规则,为商业提供决策参考。( )
选项:
A:对
B:错
答案: 【对】

2、 问题:Anaconda中包含了conda、Python在内的超过18个科学包及其依赖项。( )
选项:
A:对
B:错
答案: 【对】

3、 问题:数据分析是一个有目的地收集和整合数据的过程。 ( )
选项:
A:对
B:错
答案: 【错】

4、 问题:Python是一门胶水语言,可以轻松地操作其他语言编写的库。 ( )
选项:
A:对
B:错
答案: 【对】

5、 问题:下列选项中,用于搭建数据仓库和保证数据质量的是( )。
选项:
A:数据收集
B:数据处理
C:数据分析
D:数据展现
答案: 【数据处理】

6、下列选项中,描述不正确的是( A )。

A. Pandas中只有Series和DataFrame这两种数据结构

B. Series是一维的数据结构

C. DataFrame是二维的数据结构

D. Series和DataFrame都可以重置索引

7、下列选项中,描述正确是( B )。

A. Series是一维数据结构,其索引在右,数据在左

B. DataFrame是二维数据结构,并且该结构具有行索引和列索引

C. Series结构中的数据不可以进行算术运算

D. sort_values()方法可以将Series或DataFrame中的数据按照索引排序

8、什么是矢量化运算?

答:NumPy数组不需要循环遍历,即可对每个元素执行批量的算术运算操作,这个过程叫做矢量化运算。

9、实现数组广播机制需要满足哪些条件?

答:两个数组的某一维度等长,或其中一个数组为一维数组。

第二章 单元测试

1、 问题:如果两个数组的大小( ndarray shape)不同,则它们进行算术运算时会出现广播机制。( )
选项:
A:对
B:错
答案: 【对】

2、 问题:2.如果没有明确地指明数组中元素的类型,则默认为float64 ( )
选项:
A:对
B:错
答案: 【对】

3、 问题:.数组之间的任何算术运算都会将运算应用到元素级。( )
选项:
A:对
B:错
答案: 【错】

4、 问题:下列选项中,用来表示数组维度的属性是( )。
选项:
A:ndim
B:shape
C:.size
D:dtype
答案: 【ndim】

5、 问题:下面代码中,创建的是一个3行3列数组的是( )。
选项:
A:arr= np.array([1, 2, 3])
B:arr =np. array([1, 2, 3].[ 14, 5, 6]))
C:arr =np. array([[1, 2], [3, 41])
D:np.ones((3,3))
答案: 【np.ones((3,3))】

6、下列函数或方法中,用来表示矢量化三元表达式的是( A )。

A. where()

B. cumsum()

C. sort()

D. unique()

7、要想创建一个3 * 4的数组,下列选项正确的是( B )。

A.np.arange(12).reshape(4, 3)

B.np.arange(12).reshape(3, 4)

C.np.arange(7).reshape(4, 3)

D.np.arange(7).reshape(3, 4)

第三章 单元测试

1、 问题:Pandas是一个基于Numpy的Python库。( )
选项:
A:对
B:错
答案: 【对】

2、使用matplotlib有什么好处?

答:可以将数据进行可视化、更直观的显示,是数据更加客观、更具有说服力。

3、使用matplotlib.pyplot时如何创建画布?

答:

import matplotlib.pyplot as plt 
plt.figure(figsure = (), dpi= )

4、绘制了图像之后如何显示图像?

答:

plt.show()

 填空题:

5.1 在NumPy中,可以使用数组对象__执行一些科学计算

ndarray

5.2 如果ndarray.ndim执行的结果为2,则表示创建的是_维数组。

二维

5.3 NumPy的数据类型是由一个类型名和元素__的数字组成。

位长

5.4 如果两个数组的大小(ndarray.shape)不同,则它们进行算术运算时会出现__机制。

广播

 判断题

  1. 如果没有明确地指明数组中元素的类型,则默认为float64。( √)
  2. 数组之间的任何算术运算都会将运算应用到元素级。(√ )
  3. 多维数组操作索引时,可以将切片与整数索引混合使用。( √)
  4. 当通过布尔数组索引操作数组时,返回的数据是布尔数组中False对应位置的值。( ×)

填空题

  1. Pandas是一个基于 __的Python库。

    Numpy

  2. Pandas中有两个主要的数据结构分别为 __和 __ 。

    Series DataFrame

  3. Series结构由____组成。

    索引 数据

  4. 可以使用__ 和__创建一个Series对象。

    列表 字典

  5. 数据排序可以分为____

    按置排序 按索引排序

 选择题

1.下列选项中,用来表示数组维度的属性是( B)。

A. ndim

B. shape

C. size

D. dtype

2.下面代码中,创建的是一个3行3列数组的是( D )。

A. arr = np.array([1, 2, 3])

B. arr = np.array([[1, 2, 3], [4, 5, 6]])

C. arr = np.array([[1, 2], [3, 4]])

D. np.ones((3, 3))

3.请阅读下面一段程序:

arr_2d = np.array([[11, 20, 13],[14, 25, 16],[27, 18, 9]])

print(arr_2d[1, :1])

执行上述程序后,最终输出的结果为( A )。

A. [14]

B. [25]

C. [14, 25]

D. [20, 25]

4.请阅读下面一段程序:

arr = np.arange(6).reshape(1, 2, 3) 
print(arr.transpose(2, 0, 1))

执行上述程序后,最终输出的结果为( C )。

A.

[[[2 5]]

[[0 3]]

[[1 4]]]

B.

[[[1 4]]

[[0 3]]

[[2 5]]]

C.

[[[0 3]]

[[1 4]]

[[2 5]]]

D.

[[[0]

[3]]

[[1]

[4]]

[[2]

[5]]]

请阅读下面一段程序:

import pandas as pd

ser_obj = pd.Series(range(1, 6), index=[5, 3, 0, 4, 2])

ser_obj.sort_index()

执行上述程序后,最终输出的结果为( B )。

A.

5 1

3 2

0 3

4 4

2 5

B.

0 3

2 5

3 2

4 4

5 1

C.

5 1

4 4

3 2

2 5

0 3

D.

2 5

4 4

0 3

3 2

5 1

 简答题

简述Series和DataFrame的特点。

答:Series是一个类似于一维数组的对象,它能够保存任何类型的数据,主要由一组数据和与之相关的索引两部分构成。

DataFrame是一个类似于二维数组的对象,它每列的数据可以是不同的数据类型。DataFrame的结构也是由索引和数据组成的,并且DataFrame的索引有行索引和列索引。

程序题

1.创建一个数组,数组的shape为(5,0),元素都是0。

import numpy as np 
arr = np.zeros(5) 
print(arr)

2.创建一个表示国际象棋棋盘的8*8数组,其中,棋盘白格用0填充,棋盘黑格用1填充。

import numpy as np 
arr = np.zeros((8,8),dtype=int) 
arr[1::2,::2] = 1 
arr[::2,1::2] = 1 
print(arr)

3 .有a = [“小张”,”小李”,”小王”,”小赵”,”小孙”,”小钱”,”小武”,”小郑”,”小冯”,”小码”],b=[55,80,75,90,82,30,42,99,54,66]两个数据,请绘制条形图如下所示(横坐标为姓名,纵坐标为分数):

Python数据分析及可视化,科学计算练习题

答:

from matplotlib import pyplot as plt 
from matplotlib import font_manager 
#解决中文乱码 
plt.rcParams['font.sans-serif'] = ['SimHei'] 
plt.rcParams['font.serif'] = ['SimHei'] 
#设置字体 
my_font = font_manager.FontProperties() 
#设置画布大小 
plt.figure(figsize=(20,10),dpi=80) 
#每个名称和分数,必须一一对应 
a = ["小张","小李","小王","小赵","小孙","小钱","小武","小郑","小冯","小码"] 
b=[55,80,75,90,82,30,42,99,54,66] 
#条形图 
plt.bar(a,b, align='center',color='orange',alpha=0.8) 
#x轴刻度 
plt.xticks(range(len(a)),a,rotation=0,fontproperties=my_font) 
#绘制网格 
plt.grid(alpha=0.2,color="#cccccc") 
#设置y轴范围 
plt.ylim([0,100]) 
#设置标题 
plt.ylabel("姓名",fontproperties=my_font) 
plt.xlabel("分数",fontproperties=my_font) 
plt.title("姓名分数条形图",fontproperties=my_font) 
#显示图形 
plt.show()

4 给定数据,绘制散点图,初步判断两组数据之间是否是线性关系:

x = [67.66397446, 87.8932002 , 15.49173638, 49.00073811, 93.34772669,29.19484048, 64.30818057, 88.35988062, 47.16284695, 47.83597447]

y = [16.267041703293813, 22.026598231507805, 4.595525565959681, 11.77011884672302, 23.328619677331318, 6.879516204429002, 15.71628337101803, 21.571674589732197, 12.279129102861052, 11.306641112119534]

答:

import matplotlib.pyplot as plt

plt.scatter(x, y)

plt.show()

绘制结果很明显几乎连成一条线,所以初步判断两组数据确实存在线性关系

5.请简单说明直方图的绘制方法

答:

1、拿到一列数据,保存在列表中;

2、求列表内所有元素的最小值min和最大值max;

3、建立直角坐标系,在x轴上,把min到max这个区间平均分成N个小区间,N由用户指定;

4、根据元素的值的大小,统计列表里落在每个小区间内的元素的数量;

5、在x轴上的每个小区间上绘制柱子,柱子的宽度等于小区间的长度,高度等于落在这个小区间上的元素的数量;

6、所有的柱子绘制完成后,就得到了这一列数据的直方图

6.请阅读如下代码, 说明用户最后保存的图像是什么,为什么?

代码:

#1.创建画布(容器层)

plt.figure(figsize=(10, 10))

# 2.绘制折线图(图像层)

plt.plot([1, 2, 3, 4, 5, 6 ,7], [17,17,18,15,11,11,13])

# 3.显示图像

plt.show()

# 4.保存图像

plt.savefig("test.png")

答:最后保存到的图像是空白的。因为plt.show()会释放figure资源,如果在显示图像之后保存图片将只能保存空图片

7.自己生成数据, 绘制出正态分布对称轴左半部分数据的直方图

答:

import numpy as np

import matplotlib.pyplot as plt

# 生成数据

x = np.random.randn(10000000) 

x = x[x<0]  # 标准正态分布,对称轴x=0

# 创建画布

plt.figure(figsize=(20,8))

# 绘制图像

plt.hist(x, bins=1000)

# 显示图像

plt.show()

8 有两个矩阵如下,判断是否可以进行矩阵乘法,如果可以,请将结果写下来。

Python数据分析及可视化,科学计算练习题
Python数据分析及可视化,科学计算练习题

答:可以,结果矩阵如下

125jz网原创文章。发布者:江山如画,转载请注明出处:http://www.125jz.com/10180.html

(4)
江山如画的头像江山如画管理团队
上一篇 2022年1月28日 上午7:54
下一篇 2022年2月1日 上午8:49

99%的人还看了以下文章

  • servlet中如何使用Session?

    servlet中Session的用法 使用Servlet中的request对象获取session对象并输出其属性:HttpSession session = request.getSession(); request.setCharacterEncoding(“utf-8”); response.setContentType(“text/html;chars…

    2020年4月4日
    2.3K0
  • Java JDBC操作Mysql数据库增删改查,分页查询实例详解(源码)

    配置信息 public static final String USER_NAME = “root”; public static final String PWD = “123456789”; public static final String DRIVER = “com.mysql.jdbc.Driver”; public static final S…

    2020年2月19日
    2.6K0
  • 如何设计单元测试用例,单元测试快速入门教程四

    测试人员在实际工作中根据不同覆盖要求设计面向代码的单元测试用例,运行测试用例后至少应实现如下覆盖需求: 对程序模块的所有独立的执行路径至少覆盖一次; 对所有的逻辑判定,真假两种情况至少覆盖一次; 在循环的边界和运行界限内执行循环体; 测试内部数据结构的有效性等。 至少应设计覆盖如下需求的基于功能的单元测试用例: 测试程序单元的功能是否实现; 测试程序单元性能…

    2018年4月18日
    3.7K0
  • 第二课:Maven的下载安装及环境变量配置

    一、Maven的下载 下载地址:http://maven.apache.org/download.cgi 下载完成后,得到一个压缩包apache-maven-***-bin.zip,解压,可以看到maven的组成目录 Maven目录分析 bin:含有mvn运行的脚本 boot:含有plexus-classworlds类加载器框架 conf:含有setting…

    2023年1月27日 编程开发
    5930
  • 基于jspSmartUpload的Jsp文件上传实例(只能上传图片格式文件)

    支持中文的jsp文件上传组件:jspSmartUpload.jar下载 jar包的存放位置:WEB-INF\lib下。 upload_image.html <form method=”post” action=”new_upload.jsp” enctype=”multipart/form-data”> <input type=”file”…

    2018年12月11日
    2.3K0
  • jsp日期控件lhgcalendar下载

    资源类别:编程开发软件大小:377KB推荐等级:★★★★★资源语言:简体中文授权方式:免费版软件属性:国产软件应用平台:Win9X,Win2000,WinXP,Win2003,Vista,Unix,Linux lhgcalendar简介 非常好用的JSP日历控件,功能强大。可以实现: 1. 在控件下面或右面弹出日历组件(默认是在下面弹出) 2. 通过按钮或图…

    2019年10月8日
    2.3K0

发表回复

登录后才能评论

评论列表(1条)

  • 江山如画的头像
    江山如画 2022年1月29日 上午8:05

    z=np.array([[11,20,13],[14,25,16],[27,18,19]])
    print(z[1,:1])
    以上程序的执行结果为:【14】