Python&机器学习总结(二)
① Python中的Sort
Python中的内建排序函数有 sort()和sorted()两个
list.sort(func=None, key=None, reverse=False(or True))
- 对于reverse这个bool类型参数,当reverse=False时:为正向排序;当reverse=True时:为方向排序。默认为False。
- 执行完后会改变原来的list,如果你不需要原来的list,这种效率稍微高点
- 为了避免混乱,其会返回none
e.g.
>>>
list
=
[
2
,
8
,
4
,
6
,
9
,
1
,
3
]
>>>
list
.sort()
>>>
list
[
1
,
2
,
3
,
4
,
6
,
8
,
9
]
sorted(iterable,cmp,key=None, reverse=False(or True))
- 该函数也含有reverse这个bool类型的参数,当reverse=False时:为正向排序(从小到大);当reverse=True时:为反向排序(从大到小)。当然默认为False。
- 执行完后会有返回一个新排序好的list
- 使用cmp函数排序,cmp是带两个参数的比较函数
e.g.
>>>
list
=
[
2
,
8
,
4
,
1
,
5
,
7
,
3
]
>>> other
=
sorted
(
list
)
>>> other
[
1
,
2
,
3
,
4
,
5
,
7
,
8
]
二者区别:
sort()方法仅定义在list中,而sorted()方法对所有的可迭代序列都有效
sorted()不会改变原来的list,而是会返回一个新的已经排序好的list
②dataframe 访问元素
贴一篇写的很好的博客:https://blog.csdn.net/wr339988/article/details/65446138/
③Python中的集合
用途:
- 去重
- 求集合间的并交差补子集等
创建:
s
=
{
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
} (可变集合)
注意:创建空集合,必须用set(),不能仅定义s={},这样默认定义的是字典
n_set_test
=
frozenset
(set_test) (不可变集合)
添加|删除 元素:
add 向集合中添加元素 s.add(1)
clear 清空集合 s.clear()
copy 返回集合浅拷贝 ss=s.copy()
remove 删除指定元素 s.remove(3)
pop 随机删除一个元素 s.pop()
集合间运算:
子集:issubset()
>>> C < A
True
# C 是 A 的子集
>>> C.issubset(A)
True
并:union()
>>> A | B
{
'c'
,
'b'
,
'f'
,
'd'
,
'e'
,
'a'
}
>>> A.union(B)
{
'c'
,
'b'
,
'f'
,
'd'
,
'e'
,
'a'
}
交:intersection()
>>> A & B
{
'c'
,
'd'
}
>>> A.intersection(B)
{
'c'
,
'd'
}
差:difference()
>>> A
-
B
{
'b'
,
'a'
}
>>> A.difference(B)
{
'b'
,
'a'
}
对称差:symmetric_difference()
>>> A ^ B
{
'b'
,
'f'
,
'e'
,
'a'
}
>>> A.symmetric_difference(B)
{
'b'
,
'f'
,
'e'
,
'a'
}
④list
※ list计算长度的函数是len(alist),不是alist.len()!!!!
※ 定义给定初值或长度的list(比如定义长度为10初始值为0的list)
s=[0 for i in range(10)]
ss=[i for i in range(10)] ###定义递增的列表