为什么-2不是取斯李,这里不是很明白能讲解一下吗,还有就是取负值的时候,应该怎么走
这是序列切片,正整数表示往右数,负整数列表往左数。往右从 0 起,往左 -1 始。
第三行 mask = s_on[5:] + '***' + s_name[-2:],则 mask = '20214***李斯'。s_on[5:] 意为截取'20214010123'的第5索引前面的所有字符串,s_name[-2:] 意为取'李斯'倒数两个字符。
关于切片,您可以翻阅我发布于2022-11-08的学习笔记Python之魔幻切片了解更多。
在 Python 中,使用下标(索引)来访问列表中的元素。如果列表中包含负数下标,则表示从列表末尾开始逆向访问元素。
当使用负数下标截取列表时,我们可以将负数下标看作从列表末尾开始的倒数第几个元素。例如,一个长度为 n
的列表的最后一个元素的下标为 n-1
,而倒数第一个元素的下标则为 -1
,倒数第二个元素的下标为 -2
,以此类推。
下面是一些示例代码,演示如何使用负数下标截取列表:
lst = [1, 2, 3, 4, 5]
# 截取倒数第三个元素到最后一个元素
print(lst[-3:])
# 输出:[3, 4, 5]
# 截取列表的前三个元素
print(lst[:-2])
# 输出:[1, 2, 3]
# 截取第二个元素到倒数第二个元素
print(lst[1:-1])
# 输出:[2, 3, 4]
在上述示例代码中,我们创建了一个列表 lst
,然后通过使用负数下标来截取不同位置的元素。在第一个示例中,我们截取了倒数第三个元素到最后一个元素,因此返回列表的最后三个元素 [3, 4, 5]
。在第二个示例中,我们截取了列表的前三个元素,因此返回列表中的前三个元素 [1, 2, 3]
。在第三个示例中,我们截取了第二个元素到倒数第二个元素,因此返回列表中除首尾两个元素以外的所有元素 [2, 3, 4]
。
需要注意的是,使用负数下标截取列表时,要确保下标值不超出列表的索引范围,否则会导致 IndexError
异常。
在你这个题中:
应该选A
根据给出的代码,变量 s_no
存储学号字符串 '20214010123'
,变量 s_name
存储姓名字符串 '李斯'
。
接下来,代码用切片获取学号的前五位 '20214'
和姓名的最后两位 '李斯'
,然后用三个星号 "***"
拼接这三个部分,得到替换后的新字符串 '20214***李斯'
。这样,变量 mask
就存储了处理后的信息字符串 '20214***李斯'
。
最后,使用 print()
函数将 mask
输出到控制台上,结果为 '20214***李斯'
。
即数据集中,每个类别下的样本数目相差很大。例如,在一个二分类问题中,共有 100 个样本(100 行数据,每一行数据为一个样本的表征),其中 80 个样本属于 class 1,其余的 20 个样本属于 class 2,class 1:class2=80:20=4:1,这便属于类别不均衡。当然,类别不均衡问题同样会发生在多分类任务中。
解决不平衡分类问题的策略可以分为两大类:一类是从训练集入手 , 通过改变训练集样本分布,降低不平衡程度;另一类是从学习算法入手 , 根据算法在解决不平衡问题时的缺陷 , 适当地修改算法使之适应不平衡分类问题。
平衡训练集的方法主要有训练集重采样 (re-sampling)方法和训练集划分方法。
学习算法层面的策略包括分类器集成 、代价敏感学习和特征选择方法等。