1. 进行回归分析时,必须事先确定自变量和因变量,而两个变量中只有自变量是可以控制的量,因变量是随机的量。进行相关性分析时,不必事先确定两个变量中哪个是自变量哪个是因变量,相关性分析中两个变量都是随机的变量。
2. 应用matplotlib数据库绘制图像的时候,其中plt.savefig('test', dpi=600)中的dpi参数代表了是什么意思(图形每英寸的像素点数)。
3. 经常使用的标准化方法包括:极差标准化法(min-max方法);Z-score标准化法;线性比例标准化法:极大化法、极小值法、log函数标准化法和反正切函数标准化法;PCA方法又名主成分分析方法,是一种数据降维方法,并不是标准化方法;
4. 使用箱线图四分位距(IQR)对异常进行检测,下列哪种说法是错误的()
A 第一四分位数与第三四分位数的差距称四分位距
B 值大于上四分位+1.5*IQR为异常值
C 值小于"下四分位-1.5*IQR"为异常值
D 中位数必然等于第三四分位数与第一四分位数的算术平均数
正确答案:D
官方解析:A项,四分位距(IQR)定义:第一四分位数与第三四分位数的差距称四分位距;B项,处理异常值时候,一般使用IQR的1.5倍为标准,值大于上四分位+1.5*IQR为异常值,值小于"下四分位-1.5*IQR"为异常值;D项:对一个对称性分布数据,中位数必然等于第三四分位数与第一四分位数的算术平均数;
补充:
四分位距(IQR)是统计学中用于描述数据分布离散程度的一个指标,具体定义为第三四分位数(Q3)与第一四分位数(Q1)之差,即IQR = Q3 - Q1。四分位数是将一组数据从小到大排序后,位于不同位置上的数值,其中Q1是25%分位数,Q3是75%分位数。
箱线图是一种直观展示数据分布情况的图形,由四分位数构成,包括最小值、第一四分位数(Q1)、中位数(Q2)、第三四分位数(Q3)和最大值。箱线图通过四分位数将数据分为几个部分,并以此来识别异常值。
- 计算四分位数:首先,需要计算数据的第一四分位数(Q1)和第三四分位数(Q3)。
- 计算四分位距(IQR):IQR = Q3 - Q1。
- 确定异常值范围:
- 下限:Q1 - 1.5 * IQR。如果数据中的某个值小于这个下限,则被认为是异常值(可能是一个低异常值)。
- 上限:Q3 + 1.5 * IQR。如果数据中的某个值大于这个上限,则被认为是异常值(可能是一个高异常值)。
5. 在ndarray类型的数组中,以下哪项不是用于切割数组的函数()
A split()
B array_split()
C hsplit()
D groupby()
正确答案:D
官方解析:ABC选项都属于ndarray类型数组的切割操作。A项split()可以实现水平切割或者垂直切割,split必须要均等分;B项array_split()可以实现水平切割或者垂直切割(强制切割),指定切割后的数目实现近似均匀切割;C项hsplit()可以沿横轴(纵向)拆分原array,可以实现均匀切割或者指定位置切割;D项groupby() 是用于pandas库中对DataFrame数据进行数据的分组以及分组后地组内运算;
补充:
array_split()
:可以按指定数量或索引序列将数组分割成多个子数组,子数组长度可以不同。可以沿任意轴分割。hsplit()
:专门用于水平(按列)分割二维数组或更高维度的数组,分割后的子数组数量或位置由指定参数决定。
6. 通过numpy库定义arr数组,arr = np.arange(9).reshape(3,3),那么下列选项中哪个可以交换第一列和第二列位置()
A arr[[1,0,2], :]
B arr[:, [1,0,2]]
C arr[::-1]
D arr[:, ::-1]
正确答案:B
官方解析:A选项,交换前两行的位置;B选项,交换前两列的位置;C选项,反转二维数组的行;D选项,反转二维数组的列;
补充:
7. 数据离散程度衡量的两种指标:
平均差(Mean Deviation):
平均差是表示各个变量值之间差异程度的数值之一。它指的是各个变量值同平均数的离差绝对值的算术平均数。平均差异大,表明各标志值与算术平均数的差异程度越大,该算术平均数的代表性就越小;平均差越小,表明各标志值与算术平均数的差异程度越小,该算术平均数的代表性就越大。
计算公式为:平均差(MD)= Σ|x-x'|/n,其中Σ为总计的符号,x为变量,x'为算术平均数,n为变量值的个数。
变异系数(Coefficient of Variation):
变异系数是衡量资料中各观测值变异程度的一个统计量。当需要比较两组数据离散程度大小的时候,如果两组数据的测量尺度相差太大,或者数据量纲的不同,直接使用标准差来进行比较不合适,此时就应当消除测量尺度和量纲的影响,而变异系数可以做到这一点。它是原始数据标准差与原始数据平均数的比。
变异系数的计算公式为:变异系数 C·V =(标准偏差 SD / 平均值 Mean)× 100%。变异系数没有量纲,因此可以进行客观比较。
在进行数据统计分析时,如果变异系数大于15%,则要考虑该数据可能不正常,应该剔除。变异系数的大小同时受到平均数和标准差两个统计量的影响。
8. Matplotlib 绘制多图情况的时候,下列说法不正确的是()
A 使用subplot() 方法在绘图时需要指定位置
B 绘制多个子图时,只需调用一次plt.subplot()
C plt.title()设置子图标题
D plt.subtitle()设置图像标题
正确答案:B
官方解析:ACD选项是正确说法;在绘制多个子图的时候,需要调用多次plt.subplot(),并说明要编辑的子图的标题的位置,因此B选项是错误的,本题选择B选项;
9. 下列关于sklearn中的train_test_split函数说法正确的是()
A 数据集划分的比例是固定不变的
B 从样本中随机的按比例选取训练集、验证集和测试集
C train_test_split函数是随机选取样本,所以无法保证每次数据一样
D 设置stratify参数,可以处理数据不平衡问题
正确答案:D
官方解析:A项,数据集划分的比例可以通过test_size样本占比参数进行指定;B项,通过train_test_split函数只能划分训练集和测试集两个集合;C项,虽然train_test_split函数是从样本中随机的按比例选取训练数据和测试数据,但是可以通过random_state随机数的种子参数进行固定划分;D项,参数stratify可以处理数据类型不平衡问题,依据标签y,按原数据y中各类比例,分配给train和test,使得train和test中各类数据的比例与原数据集一致。
10. 按照标签排序的话采用的是sort_index()函数;按照值排序的话采用sort_values() 函数;两个函数都有一个控制排序顺序的参数ascending,ascending=False时由大到小排序,ascending=True时由小到大排序
11. 存在一组numpy.ndarrry类型数据a=np.array([1,2,3,4])和各个数值的权重w=np.array([4,3,2,1]),以下哪种方法可以求得权重平均值()
A np.mean()
B np.nanmean()
C np.average()
D np.std()
正确答案:C
官方解析:A. mean()的功能是求取平均值;B. nanmean()的功能是计算忽略NaN值的数组平均值。如果数组具有NaN值,我们可以找出不受NaN值影响的均值;C. mean() 和 average()都有取平均数的意思, 在不考虑加权平均的前提下,两者的输出是一样的 ,但是考虑权重的情况下, np.average(a,weights=w) 还可以计算加权平均值;D.std()计算矩阵或者数组的标准差;
12. numpy.reciprocal()该函数对数组中的每个元素取倒数,并以数组的形式将它们返回
13. numpy.sort()对输入数组执行排序,并返回一个排序好的数组副本;numpy.argsort()对输入数组的元素值进行排序,并返回排序后的元素索引数组;numpy.where() 的返回值是满足了给定条件的元素索引值;numpy.nonzero()该函数从数组中查找非零元素的索引位置
14. 在Python Pandas处理缺失值操作中,fillna()函数是用来填充空缺值NaN时使用。Fillna(0)和fillna(1)表示分别使用0和1填充空缺值;fillna()中method参数用来控制向前和向后填充NaN,method=’ffill’表示向前填充,bfill() 表示向后填充。
15. Matplotlib 使用plt.subplots(m,n)函数绘制多图的时候,下列说法不正确的是()
A plt.subplots()函数返回的是图形对象和所有的axes对象
B ax.flatten()函数可以将m*n的子图展平成1*nm的axes组
C subplot()函数和subplots() 函数相比,只创建了一个figure图形对象
D axes对象使用set_title()函数为子图添加标题
正确答案:C
官方解析:选项A,plt.subplots(m,n)函数的返回值是一个元组,包括一个图形对象(fig)和所有的axes对象,其中axes 对象数量为m*n,因此A描述正确;选项B,在用plt.subplots(m,n)画多个子图时,ax=ax.flatten()操作将ax由n*m的Axes组展平成1*nm的Axes组,因此B项描述正确;选项C,subplots() 函数和 subplot() 函数使用方法类似。其不同之处在于,subplots() 既创建了一个包含子图区域的画布,又创建了一个 figure 图形对象,而 subplot()只是创建一个包含子图区域的画布。因此C项描述不正确;选项D,ax.set_title()是给ax子图设置标题,当子图存在多个的时候,可以通过ax设置不同的标题;
16. 对于缺失值的处理方式包括:删除样本、插补和保留不处理三种方式
17. plt.legend()操作为创建图中的图例,对对象解释使用;plt.title()操作为创建图标题;plt.xticks()操作可以为X轴创建刻度标签(label)也可以创建刻标(locs);plt.savefig()操作保存当前生成的图表的作用
18. join()方法、concat() 方法和merge()方法都是属于pandas库中的拼接函数;concatenate()方法属于numpy库中的拼接的方法,除此之外numpy库中拼接的方法还有np.append() 、np.stack()、 np. Hstack()、np.vstack()和np.vstack()等操作
19. 在panda包中处理DataFrame类型数据时候,iloc按照索引值来定位数据元素。e.x. iloc[1,1],loc['1','B']
20. pandas中创建DataFrame有多种方法,常用的有以下三种:
第一种:用列表来创建。具体语法就是
data = [[第一行的第一列值,第一行的第二列值],[第二行的第一列值,第二行的第二列值]] df = pd.DataFrame(data, columns=['列名','列名']) df
其中中括号里面的子中括号表示每一行数据;然后放入DataFrame函数中。不过记得利用columns参数来设置DataFrame的列名,不然会默认使用从0开始的数字作为列名。
第二种:用字典dict来创建。
具体语法:
data = [{key1:value1}, {key2:value2}, {key3:value3}] df = pd.DataFrame(data) df
这里的key就是DataFrame的列名,value就是每一行对应的列值。
第三种:用ndarrays创建。
具体语法:
data = {'columns_1':[values1], 'columns_2':[values2]} df = pd.DataFrame(data) df
这里columns_1就是每一列的列名;values1就是每一列对应的数值或数据。
21. np.intersect1d用来获取数组a和数组b之间的公共项;np.setdiff1d(a,b)用来从a数组中删除存在于b数组中的项;np.where(a == b)方法用来获取a数组和b数组元素相匹配的位置;是一种排序算法,按键序列对数组进行排序,它返回一个已排序的索引数组
22. numpy中, randn函数返回一个指定形状的数组,数组中的值服从标准正态分布(均值为0,标准差为1);uniform函数从一个均匀分布的区域中随机采样;rand函数返回一个或一组服从“0~1”均匀分布的随机样本值,随机样本取值范围是[0,1),不包括1;randint函数从给定的区域中随机选取设定数量的整数;
23. 聚类算法:k-means是最基础的聚类算法了,它的输入需要簇的个数k,聚类目标是使得类内的点足够近,类间的点足够远;KNN是机器学习中的一种分类算法,并不是聚类算法;DBSCAN是基于密度的聚类的算法,要求聚类空间的一定区域所包含的对象的数目不小于某一给定阈值,当邻近区域的密度超过某个阈值,则继续聚类;GCN分类本质上是基于图的聚类,然而基于GCN的聚类算法会有深度学习中的训练的概念,而传统的聚类算法则是通过人工设定阈值来决定的。
24. unique():返回NumPy数组ndarray中唯一元素值的列表;value_counts():返回唯一元素的值及其在出现的次数;nunique()以整数int形式返回唯一元素的数量;count()方法用于统计非空字符串数量;
25. numpy.arange(start, stop, step, dtype)根据 start 与 stop 指定的范围以及 step 设定的步长,生成一个 ndarray;numpy.linspace 函数用于创建一个一维数组,数组是一个等差数列构成的;numpy.logspace 函数用于创建一个于等比数列;numpy.random.randint返回一个随机整型数
26. 在pandas读取excle数据列表的时候,直接在读取时更改列名;使用rename函数修改指定列的列名,但是后面需要使用inplace参数,并设置为True(表示在原始DataFrame上进行重命名操作,不返回新的DataFrame对象)
27. 对列表listname中的元素进行删除操作时候,以下哪个选项是根据元素值来进行删除操作的方法或函数()
A del listname[]
B listname.pop()
C listname.remove()
D listname.clear()
正确答案:C
官方解析:A选项和B选项都是根据列表中的索引值来删除元素的操作;D选项,则是删除列表中的所有元素的操作;C选项,是根据列表中的元素值来进行元素的删除;所以选择C选项。
28. pandas库中的to_numberic(arg,errors,downcast)函数的参数解释:
errors存在三个参数{'ignore','raise','coerce'},默认情况下为'raise'。如果为“ raise”,则无效的解析将引发异常;如果为“强制”,则无效的解析将设置为NaN;如果为“ ignore”,则无效的解析将返回输入。downcast =’signed’所有值都将转换为整型。
29. 可视化扩展库matplotlib中的pyplot模块中的legend()函数设置图像标题时,loc参数设置图列位置;prop设置字体参数;fontsize参数设置图例字体大小;frameon控制是否应在图例周围绘制框架
30. 进行数据预处理时,使用pandas模块中去重函数drop_duplicates,代码如下,选项中说法不正确的是()
1 |
|
A 参数subset用于指定要去重的列名
B keep指定要保留行,有两个可选参数first和last
C inplace表示是否要在原数据操作或者存为副本
D 去重后行标签不变,如需改变可使用df.reset_index()重置索引
正确答案:B
官方解析:subset:表示要进行去重的列名,A项正确;keep:有三个可选参数,分别是 first、last、False,默认为 first,表示只保留第一次出现的重复项,删除其余重复项,last 表示只保留最后一次出现的重复项,False 则表示删除所有重复项,B项错误;inplace:布尔值参数,默认为 False 表示删除重复项后返回一个副本,若为 Ture 则表示直接在原数据上删除重复项,C项正确;重置索引函数为reset_index(),因此D正确;
31. python构建指定长度全为零的数组使用numpy.zeros( )函数,书写格式:numpy.zeros(shape, dtype=float, order='C');定义方法shape的上列数应该书写成这种格式 (行数,列数)