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%的人还看了以下文章

发表回复

登录后才能评论

评论列表(1条)

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

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