第一章 单元测试
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)不同,则它们进行算术运算时会出现__机制。
广播
判断题
- 如果没有明确地指明数组中元素的类型,则默认为float64。( √)
- 数组之间的任何算术运算都会将运算应用到元素级。(√ )
- 多维数组操作索引时,可以将切片与整数索引混合使用。( √)
- 当通过布尔数组索引操作数组时,返回的数据是布尔数组中False对应位置的值。( ×)
填空题
- Pandas是一个基于 __的Python库。
Numpy
- Pandas中有两个主要的数据结构分别为 __和 __ 。
Series DataFrame
- Series结构由__和__组成。
索引 数据
- 可以使用__ 和__创建一个Series对象。
列表 字典
- 数据排序可以分为__和__。
按置排序 按索引排序
选择题
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]两个数据,请绘制条形图如下所示(横坐标为姓名,纵坐标为分数):
答:
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 有两个矩阵如下,判断是否可以进行矩阵乘法,如果可以,请将结果写下来。
答:可以,结果矩阵如下
125jz网原创文章。发布者:江山如画,转载请注明出处:http://www.125jz.com/10180.html
评论列表(1条)
z=np.array([[11,20,13],[14,25,16],[27,18,19]])
print(z[1,:1])
以上程序的执行结果为:【14】