[NOTE]数据分析(一)

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)和最大值。箱线图通过四分位数将数据分为几个部分,并以此来识别异常值。

  1. 计算四分位数:首先,需要计算数据的第一四分位数(Q1)和第三四分位数(Q3)。
  2. 计算四分位距(IQR):IQR = Q3 - Q1。
  3. 确定异常值范围
    • 下限: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

>>> df.drop_duplicates(subset=['A','B','C'],keep= ,inplace= )

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的上列数应该书写成这种格式 (行数,列数)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值