Python 机器学习基础(一)——Python

本文是 Python 机器学习基础系列的第一部分,涵盖了 Python 的数据类型,包括基本数据类型(如布尔、整型、浮点型、复数)和容器(如元组、列表、字典、集合)。讨论了索引与切片操作,并介绍了其他语法,如强制类型转换和辅助函数。还涉及表达式与控制流,包括运算符、条件语句和循环。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文是 Python 机器学习基础系列文章的第一篇——Python 篇。

Python

任何一门编程语言,入门学习的基础知识包括:数据类型、控制流、函数、模块化、类,以及一些常用的零碎语法。Python 亦不例外。

数据类型

基本数据类型

包括布尔型(bool)、整型(int)、长整型(long)、浮点型(float)、复数(complex)五种。

  • 内置常量:False, True, None, NotImplemented, Ellipsis, __debug__
  • 布尔型(bool):只有两个值 TrueFalse,每个 Python 对象都天生具有布尔值,None, False, 0, 0L, 0.0, 0.0+0.0j, '', [], (), {} 值为 False,自定义类在方法 __nonzero__()__len__() 中返回布尔值,此外其他对象的布尔值都为 True,在数值运算中 TrueFalse 值为 10,布尔操作包括 and, or, not, !=, is, is not

  • 整型(int):等价于 C 语言中的 long 类型,与系统能表示的最大整型一致,包括十进制、八进制(数字 0 开头)、十六进制(0x0X 开头),可通过 bin, oct, hex 转换进制,可进行 /, //, ** 等运算

  • 长整型(long):是整型的超集,可以表示无限大的整数,在整数后加 Ll 来表示如 a = 999 ** 8, pow(2L, 5L)

  • 浮点型(float):等价于 C 中的 double,其精度信息和内部表示可以从 sys.float_info 中获得,可以用十进制或科学计数法(1e-2 等)表示

  • 复数(complex):c = 08.333-1.47j, c.real, c.imag, c.conjugate(), abs(c)

容器

容器是数据的集合。Python 的容器,除字符串(string)外,主要包括四种:元组(tuple),列表(list),字典(dict)和集合(set)。其中,字典和集合是无序容器,而元组、列表和字符串都是有序容器,支持索引(index)和切片(slicing)操作。此外,字符串、元组和集合是不可变容器,而列表和字典是可变容器。不可变容器通常比可变容器(如 list)更为高效。

下面介绍这五种容器:

  • 字符串(str):使用单引号('hello')、双引号("hello")或三引号('''hello''')定义。三引号可定义多行字符串。包含 startswith 等方法。

  • 元组(tuple):圆括号与逗号分隔定义(也可以不带括号),如 t = (0, "two", 3.0, "four", (5,6))。必须在定义时初始化且内容和长度不可变。0 个元素的元组这么定义 a = (),1 个元素的元组这么定义 a = (2 ,),元素可以是不同类型。tuple 也常用来打包一组变量如 t = (i, s, f), ii, ss, ff = tprint 函数 % 后的部分其实就是元组,如 print '%s is %d years old' % (name, age)

  • 列表(list):方括号与逗号分隔定义,如 l = [1, (2,3), "hello"]。也可以通过 list 函数来构造,此时需要传入一个元组或字符串,如 l = list((1,2,3)), a = list("hello")。list 与 tuple 的区别在于其内容和长短可变,通过 append 来添加元素,通过 del 命令删除,如 del l[0]。list 包含 append, sort, pop, count, reverse 等成员函数。

  • 字典(dict):花括号与逗号分隔来定义,如 d = { 'name': 'John', 'age': 18, 'feat': (1,3,'tall')},每个字典项用冒号隔开 key 与 value。可用索引操作符 [] 来寻址一个键,或者对其赋值,也可用 del d['key'] 将某项删除。

  • 集合(set):集合是无序不重复元素集,通过 set() 函数来定义,传入一个字符串、元组、列表或字典,如 s = set([1, 2, "hello"]),传入字符串时构建不重复字符集合,传入字典时默认用 keys 构建集合。集合支持并集(|)、交集(&)、差集(-)、对称差集(^)运算符,包含 add, update, remove, issubset, isuperset, copy, clear 等子函数。

索引与切片
  • 索引(index):序列容器(tuple, list, string, unicoe, frozenset)都可以通过索引操作符 [] 来存取元素。索引从 0 开始,也可以是负数,表示倒数第几个元素。如 t[0], t[-1], t[-2] 分别表示第一个、最后一个与倒数第二个元素。

  • 切片(slice):切片是同时取容器内某个索引范围的多个元素。形式为 t[start:end:step],注意 end结束位置索引 + 1,如 t[0:-3:2]。可以省略三个值里的一个或多个,如 a[2:7], l[0::2], t[:-1] 等。

  • 连接:序列容器(string, tuple, list)的加法(+)表示序列的连接而非容器求和。如 a = (1, 2, 3) + (4, 5, 6)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值