python编程语法——入门基础(零基础)

python编程语法基础

1.变量的定义

无论使用什么语言编程,其最终目的都是对数据进行处理。在编程过程中,为了处理数据更加方便,通常会将程序存储在变量中。这就意味着在创建变量时会在内存中开辟一个空间。

  1. 在Python中,每个变量在使用之前都必须赋值,变量只有在赋值之后才会被创建。

  2. 使用=可以给变量赋值。

  3. =左边是变量名=右边是变量的值

如:

a = 13   # 将a赋值为13

将a赋值为13,在后面的程序中,我们就可以直接使用变量a,其值为13。

print(a+1)    # print()函数用来输出,输出14

2.变量命名的规范

上面我们提到了a是变量名。

理论上来说,变量名可以根据自己的喜好,随便命名。但是也必须遵循最基本的命名规范。

1. 必须遵守

以下是python中变量名必须遵守的规则,如果不遵守这些规则,代码就会报错。

a. 变量名的组成

变量名只能由字母、数字、下划线组合而成,不能包含其他特殊字符。

如:abc,ab001,ab_123。(正确)

abc+、a.b、a#1。(错误)

b. 变量名的开头

数字不能做为变量名的开头。

如:3abc(错误)。

c. 不能使用的单词

不能使用Python内置的关键字或保留字,因为关键字或保留字会被python解释器解释成其他的意思,而不是变量名。

如:return、from、while等(错误)。
查看关键字或保留字的方法:

import keyword 
print(keyword.kwlist)

[‘False’, ‘None’, ‘True’, ‘__peg_parser__’, ‘and’, ‘as’, ‘assert’, ‘async’, ‘await’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘nonlocal’, ‘not’, ‘or’, ‘pass’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’]

以上这些单词都不能作为变量名使用。

d. 区分大小写

Python对大小写是敏感的,也就是说,Python中是区分大小写的。

Python的变量名是区分大小写的,例如:name和Name就是两个变量名,而非相同变量。(千万注意这一点!!!

如:

Age = 18
print(age)

执行上面的代码,会报变量名age没有定义的错误。

NameError: name ‘age’ is not defined

2. 建议遵守

方便阅读和理解代码,建议遵守以下规则:

a. 变量名有意义

变量命名尽量有意义,表达存放的值所代表的含义;

b. 变量名遵守规则

变量名建议使用以下两种命名规则之一。

命名规则:当变量名由多个单词连接在一起时,用某种方式来区分各个单词。

  1. 驼峰式命名法
    小驼峰:第一个单词的首字母小写,其余单词的首字母大写。
    大驼峰:每个单词的首字母都大写。

    userName = "xiaohua"  #小驼峰命名
    

UserName = “xiaoli” #大驼峰命名

2. **下划线命名法**
  单词小写,各个单词之间用下划线进行连接。
  
  ```python
  my_name ="xiaohua"  # 单词之间用"_"分隔
  ```

## 3.常见数据类型

**基于变量的数据类型,解释器会分配指定内存**,并决定什么数据可以被存储到内存中,因此,变量可以指定不同的数据类型,这些变量可以存储整数、小数或字符。


在python中,数据类型较多,但是常用的数据类型有7种,分别是:**数字、布尔、字符串、列表、元组、字典和集合**。

**python是动态类型语言,变量不需要显示声明类型。赋值之后可以直接使用,类型在运行过程中自动确定。**

### 1.数字

数字是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。当指定一个值时,Number对象就会被创建,如以下程序。

```python
a = 123    # 定义变量a,赋值为123
b = 123.45
print(a)    # 打印输出变量的值
print(type(a))    # type()函数,返回变量的类型
print(b)
print(type(b))

运行上述程序,返回结果如下:

123

123.45

注:python解释器会自动识别变量的类型。如:

上面的变量 a 被赋值为123,则其类型被自动识别为 int

上面的变量 b 被赋值为123.45,则其类型被自动识别为 float

python支持以下3种不同的数字类型。

  • int:有符号整型;
  • float:浮点数(小数);
  • complex:复数。

2.布尔类型

bool数据类型只有两个值,分别是True和False,它们表示真与假,对与错。
通常在比较大小时,会返回bool类型的数据。
比如:在if语句中,程序根据条件表达式的真假决定走哪个逻辑分支。

print(3<4)    # 3小于4,返回True
print(3>4)    # 3不大于4,返回False
print(type(3>4))    # ,(3>4)这个表达式返回值为bool类型

3.字符串

字符串是由数字、字母、下划线组成的一串字符。在python中,字符串必须使用引号括起来,可以使用单引号或双引号,只要成对即可。字符串中的内容几乎可以包含任何字符,英文字符也行,中文字符也行

比如以下程序:

str1 = "hello python"
str2 = "你好,python"
print(str1)
print(type(str1))
print(str2)
print(type(str2))

运行上述程序,返回结果如下,str1和str2均为字符串类型。

hello python

你好,python

注:‘str’ 即为字符串类型。

4.列表

List(列表)是python中使用最频繁的数据类型,列表可以完成大多数集合类的数据结构实现。它支持字符、数字、字符串,甚至可以包含列表,列表用 “[ ]” 标识,是python中最通用的复合数据类型。

列表中可以包含不同类型的数据,如:

list1 = [123,"python","你好",86.97]
print(list1)
print(type(list1))

运行上述程序,返回结果如下,list1为列表类型变量。

[123, 'python', '你好', 86.97]

注:‘list’ 即为列表类型。

5.元组

元组是另一数据类型,类似于list。元组用 “( )” 标识,内部元素用逗号隔开,但是元组不能二次赋值,相当于只读列表

tuple1 = (123,"python","你好",86.97)
print(tuple1)
print(type(tuple1))

运行运行上述程序,返回结果如下,tuple1为元组类型变量。

(123, ‘python’, ‘你好’, 86.97)

注:‘tuple’ 即为元组类型。

6.字典

字典和列表相同,字典也是许多数据的集合,属于可变序列类型。
不同之处在于它是无序的可变序列,其保存的内容是以“键值对”的形式存放的。
字典类型是python中唯一的映射类型,“映射”是数学中的术语,它指的是元素之间相互对应的关系,即通过一个元素可以唯一找到另一个元素。
字典中,习惯将各元素对应的索引称为键(key),各个键对应的元素称为值(value),键及其关联的值称为“键值对”

dict1 = {'city':['beijing','shanghai','guangzhou','shenzhen']}
print(dict1)
print(type(dict1))

运行运行上述程序,返回结果如下,dict1为字典类型变量。

{‘city’: [‘beijing’, ‘shanghai’, ‘guangzhou’, ‘shenzhen’]}

注:‘dict’ 即为字典类型。

7.集合

在python中的集合和数学中的集合概念一样,用来保存不重复的元素,即集合中的元素都是唯一的,互不相同。从形式上看,和字典类似,Python集合会将所有元素放在一对大括号 “{ }” 中,相邻元素之间用逗号 “ , ” 分隔。如下所示。

set1 = {'张三','张三','张三',19,'2021-7-12'}
print(set1)
print(type(set1))

运行上述程序后,输出结果如下,SET1为集合类型变量。

{19, ‘2021-7-12’, ‘张三’}

注:‘set’ 即为集合类型。

集合类型的变量是无序的,在执行代码时,系统会自动去除集合中重复的值,并乱顺排列。

上面的set1原本值为{‘张三’,‘张三’,‘张三’,19,‘2021-7-12’},输出后,值变成了:{19, ‘2021-7-12’, ‘张三’}。

4.运算符

1.算术运算符

运算符 描述
+
-
*
/
% 取模(取余)
**
// 取整除
print(1+3)    # 4
print(5/2)    # 2.5
print(5%3)    # 5对3取余数,值为2
print(5**3)    # 5的3次方,值为125
print(5//3)    # 5整除3,值为1

2.比较(关系)运算符

运算符 描述
== 等于,比较对象是否相等
!= 不等于,比较两个对象是否不相等
> 大于
< 小于
>= 大于等于
<= 小于等于

比较(关系)运算符会返回**bool类型(True/False)**的数据。

a=1
b=3
print(a==b)    # a不等于b,返回False
print(a>b)    # a不大于b,返回False
print(a<b)    # a小于b,返回True
print(a>=b)    # a不大于等于b,返回False
print(a<=b)    # a小于等于b,返回True

3.赋值运算符

运算符 描述
= 赋值运算符
+= 加法赋值运算符
-= 减法赋值运算符
*= 乘法赋值运算符
/= 除法赋值运算符
%= 取模赋值运算符
**= 幂赋值运算符
//= 取整除赋值运算符
a = 1
b = 2
c = 3
d = 4
f = a    # f被赋值成a的值
a += 4    # 等价于a=a+4,a值变成5
b -= 3    # 等价于b=b-3,b值变成-1
c *= 2    # 等价于c=c*2,c值变成6
d /= 2    # 等价于d=d/2,d值变成2.0
print(f)    # 1
print(a)    # 5
print(b)    # -1
print(c)    # 6
print(d)    # 2.0

4.逻辑运算符

运算符 描述
and 逻辑与(所有条件必须都为True才返回True,否则返回False)
or 逻辑或(所有条件中有一个返回True,则返回True)
not 逻辑非(对条件进行取反)
print((1<3) and (2<4))    # 条件(1<3)和条件(2<4)都返回True,最后返回True
print((1>3) and (2<4))    # 虽然条件(2<4)返回True,但条件(1>3)返回False,最后返回False
print((1>3) or (2<4))    # 虽然条件(1>3)返回False,但条件(2<4)返回True,最后返回True
print((1>3) or (2>4))    # 条件(1>3)和条件(2>4)都返回False,最后返回False
print(not (1>3))    # 条件(1>3)返回False,取反,返回True

5.位运算符

运算符 描述
& 按位与运算符
| 按位或运算符
^ 按位异或运算符
~ 按位取反运算符
<< 左移运算符
>> 右移运算符

一般情况下,用不到位运算符,暂时不用学习。

6.成员运算符

运算符 描述
in 如果在指定的序列中找到值,则返回True,否则返回False。
not in 如果在指定的序列中没有找到值,则返回True,否则返回False。
print(3 in [1,2,3,4,5])    # 3在列表[1,2,3,4,5]中,返回True
print(0 in [1,2,3,4,5])    # 0不在列表[1,2,3,4,5]中,返回False
print(0 not in [1,2,3,4,5])    # 0不在列表[1,2,3,4,5]中,“not in”运算符返回True

7.身份运算符

运算符 描述
is 判断两个标识符是不是引用自同一个对象。
is not 判断两个标识符是不是引用自不同对象。

身份运算符用得也比较少,现在可以先不用学习。

需要注意的是,在使用这些运算符的时候,要特别注意运算符的优先级。
所谓运算符的优先级,指的是在含有多个逻辑运算符的式子中,到底应该先计算哪一个,后计算哪一个。这与数学中四则运算应遵循 “先乘除后加减” 是一个道理。
当我们不知道哪个运算符比较优先时,我们使用括号来进行先后顺序的控制(先执行最内层括号里面的内容)。

5.流程控制

Python提供了现代编程语言都支持的两种基本流程控制结构:分支结构和循环结构
分支结构:用于实现根据条件来选择性的执行某段代码
循环结构:用于实现根据循环条件重复执行某段代码

1.条件语句

python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。
python编程中if语句用于控制程序的执行,基本形式如下。

1.单次条件判断

if…else… 语句格式:

if 判断条件:
    执行语句1
else:
	执行语句2

注意:1.python是一种对缩进非常敏感的语言,对代码格式要求非常严格。

如上面“执行语句1”前面必须要有四个空格或一个“Tab”(一般一个Tab代表4个空格),否则程序就将报错。

2.**一个 if 对应一个 else **,这样就只能进行单次的条件判断。

如果多次使用 if…else… 语句,每次的 if 判断是独立的,互不影响的

比如我们需要对学生的成绩等级划分,规则如下:

score<60——不及格
score>=60且score<70——及格
score>=70且score<80——良好
score>=80——优秀

想一下我们应该如何实现呢?如果我们用 if…else… 语句来写,我们可以这样写:

score = 68
if score<60:
    print('不及格')
if score>=60 and score<70:
    print('及格')
if score>=70 and score<80:
    print('良好')
else:
    print('优秀')

但是,我们上面说过,if 只能进行单次的条件判断,如果多次使用 if ,则每次条件判断是独立的。

例子中的 score = 68,满足第二个if条件,输出“及格”

但是,这时候并不会结束所有的if语句,还会继续执行第三个if语句,显然,不满足第三个条件语句,则执行else的内容,输出“优秀”。(这里的 else 只是最后的 if 语句的 else 而不是所有 if 语句的 else

即上面代码的输出如下:

及格
优秀

如果想要每次if条件判断是相关联的,else也是所有语句的else,我们需要在第二个开始的 if 前面加上“ el ”,即 elif 。(elif是 else if 的简写)

2.多次条件判断

if…elif…else… 语句格式:

if 判断条件:
    执行语句1
elif:
    执行语句2
elif:
    执行语句3
else:
    执行语句4

这样写的话,只要满足任意一个 if/elif 语句后面的条件,整个 if…elif…else… 语句就会结束,如果条件都不满足,就执行else后面的内容。

前面的例子就应该这样写:

score = 68
if score<60:
    print('不及格')
elif score>=60 and score<70:
    print('及格')
elif score>=70 and score<80:
    print('良好')
else:
    print('优秀')

输出内容:

及格

2.循环语句

Python提供了for循环和while循环。

while循环是条件为真的时候重复执行一个代码块。

当需要为一个集合的每一个元素执行一个代码块的时候,就需要for循环。

1.while循环

while循环基本形式如下:

while 条件表达式:
    循环体语句块

只要“条件表达式”为真,就会一直循环执行“循环体语句块”。

比如:我们要打印3遍“hello world”,代码如下。

n = 0
while n < 3 :
    print('hello world') 
    n = n + 1

运行上述程序,结果如下。

hello world
hello world
hello world

解释一下具体的执行过程:

  1. n先被赋值成0,然后进入while循环,判断循环条件是否成立。

    循环条件为:n<3,此时的==n=0==,满足条件,开始第1遍循环。

    进入循环体,执行循环体语句块的内容:

    1. 输出hello world;(1次)
    2. n = n + 1,将n进行加1操作,此时的n=1。
      第1遍循环结束。
  2. 继续判断循环条件是否成立,如果成立,再次循环。

    循环条件为:n<3,此时的==n=1==,满足条件,开始第2遍循环。

    进入循环体,执行循环体语句块的内容:

    1. 输出hello world;(2次)
    2. n = n + 1,将n进行加1操作,此时的n=2。
      第2遍循环结束。
  3. 继续判断循环条件是否成立,如果成立,再次循环。

    循环条件为:n<3,此时的==n=2==,满足条件,开始第3遍循环。

    进入循环体,执行循环体语句块的内容:

    1. 输出hello world;(3次)
    2. n = n + 1,将n进行加1操作,此时的n=3。
      第3遍循环结束。
  4. 继续判断循环条件是否成立,如果成立,再次循环。

    循环条件为:n<3,此时的==n=3==,不满足条件,结束循环。

总结:

  1. 只要循环条件为真,就会一直循环执行循环体的内容;

  2. 循环条件与n值有关;

  3. 在循环体内对n值进行加1操作,已到达控制循环次数的目的。

如果仔细研究,你会发现,while循环是可以无限循环的,如以下语句:

while True:
    print('hello world')

循环条件永远为True,就可以无限次的执行循环体内容。

当我们需要让某个代码块一直执行时,我们可以采用这样的方式。

下面介绍一种必须有次数限制的循环:for循环。

2.for循环

for 循环是有限循环语句,它始终需要指定一个有限的循环次数。它的使用格式如下:

for 变量 in 可迭代对象:
    循环体语句块

可迭代对象解释起来较为复杂,目前阶段可以简单的理解成“可以包含有多个值的对象”。

如:集合型的数据类型,如列表(list)、元组(tuple)、字典(dict)、集合(set)、字符串(str)(包含多个字母)。

其中可迭代对象是要循环遍历的对象,变量用于接收迭代对象中的每个成员的值。

循环体语句块是要循环执行的语句块,可以只有一行也可以是多行。多行时,其缩进必须一样,在语句块中,可以引用变量。

for语句的运行规则是这样的:将可迭代对象中的每一个成员依次赋予变量,每赋予一次,执行一次for循环语句块,直到所有的成员遍历完毕

1.遍历元组
a = [1,2,3]
for i in a:
    print(i)

运行上面的代码,得到如下的结果:

1
2
3

解释一下具体的执行过程:

  1. 将元组 [1,2,3] 赋值给a;
  2. 元组a中的第0个元素1赋值给i,即:i=1,然后执行一遍循环体内容:print(i),输出1。
  3. 元组a中的第1个元素2赋值给i,即:i=2,然后执行一遍循环体内容:print(i),输出2。
  4. 元组a中的第2个元素3赋值给i,即:i=3,然后执行一遍循环体内容:print(i),输出3。
  5. 元组a的所有成员遍历完成,for循环结束。

注意:python中元素的下标都是从0开始的。如:

a=[1,2,3,4,5]
print(a[0])    # a的第0的元素,输出1
print(a[1])    # a的第1的元素,输出2

for循环变量元组、字典、集合以及字符串和遍历元组的方式完全一样,这里就不做过多的介绍了。

2.遍历range函数

range()函数:用于生成一个整数序列,大多数时常出现在for循环中,用来控制循环的次数

range()函数语法:range(start, stop [,step])

start 指的是计数起始值(可省略),省略时默认是 0
stop 指的是计数结束值(不可省略),但不包括 stop
step 是步长(可省略),省略时默认为 1,不可以为 0;当指定了步长时,起始值不可以省略 。

range() 方法生成一段左闭右开的整数范围

a=range(3)    # range(3),等价于range(0,3,1),起始值省略时默认为0,步长省略时默认为1
print(a)
print(type(a))

运行上面的代码,得到如下的结果:

range(0, 3)

range是一种特殊的数据类型,类似于列表但不是列表,初学者可以简单的理解range(0, 3)为[0,1,2]。(这样只是方便理解,其实它们之间是有区别的)

for循环遍历range函数,实现循环次数的控制:

1.打印3次“hello world”

for i in range(3):    # range(n),n就代表了循环执行的次数
    print('hello world')    # 打印3次hello world

运行上面的代码,得到如下的结果:

hello world
hello world
hello world

2.输入0-10内的所有偶数

for i in range(0,10,2):    # 从0开始,到10结束(不包括10),步长为2(即每次增加2)
    print(i)

运行上面的代码,得到如下的结果:

0
2
4
6
8

总结:

1.range() 函数用于生成一段左闭右开的整数序列

2.变量 i 会依次遍历range生成的整数序列的所有值,每遍历一次,执行一次循环体的代码;

3.遍历完成,循环结束。

6.函数

1.函数概念介绍

在python中,函数的应用非常广泛,前面的内容我们已经接触过了python函数,比如print、type函数,这些都是python的内置函数,可以直接使用。
除可以直接使用的内置函数外,python还支持自定义函数,即将一段有规律的、可重复使用的代码定义成函数,从而达到一次编写、多次调用的目的,所以下面我们讲述自定义函数。

2.函数的定义

定义函数,也就是创建一个函数,可以理解为创建一个具有某些用途的工具,定义函数需要用def关键字实现。

具体的语法格式如下:

def 函数名( 参数1,...,参数n ):
    函数体内容
    return 表达式

函数的定义主要有如下要点:

  • def:表示函数的关键字。
  • 函数名:函数的名称,后面根据函数名调用函数。
  • 函数体:在函数中进行一些列的逻辑计算。
  • 参数:为函数提供需要的数据。
  • 返回值:当函数执行完毕后,可以给调用者返回数据。

3.简单函数案例

1.无参数函数

参数并不是必须的,函数也可以没有参数
比如我们写一个函数来输出“happy birthday!”,我们每次调用这个函数都会自动输出“happy birthday!”。

def happy():    # 定义happy()函数,没有任何参数
    print('happy birthday!')    # 函数体内容,没有返回值

happy()    # 调用happy()函数

运行上面的代码,结果如下:

happy birthday!

2.带参数函数

上面的函数没有参数,也没有返回值。

什么是返回值?
返回值就是在函数体执行完成后,需要返回给函数的值。
我们可以用一个变量来接收该返回值,或者用print()函数直接输出。
如我们定义一个函数add(),实现两个数进行相加。

def add(num1, num2):    # 定义两个形式参数
    return num1+num2    # 在函数体内对形式参数进行操作,返回两数之和

add(1,2)    # 调用函数add(),并传入实际参数1,2
# 注意,直接调用add()函数并不会有任何的输出值,因为这里并没有对该值进行输出。
# 如果要输出函数的返回值,需要加上print()函数
print(add(1,2))    # 输出函数返回值

形参和实参的区别
形参:形式参数,在定义函数的时候,我们需要定义形参,然后在函数体中,我们对形参进行操作。
实参:实际参数,在调用函数的时候,我们需要给函数传递一个实参,代表该函数实际传入的值,并将该值传递给形参,参与函数的计算。

7.常用python库

1.常用python库

python库是指python中的完成一定功能的代码集合,用户可以直接调用相关库进行特定的操作。

库是Python的特色之一,即具有强大的标准库,还有第三方库

在整个完整的数据分析项目实施的过程中,一般会涉及以下的一些python库。

比如在数据理解和数据准备阶段,我们需要用到 Numpy 、 SciPy 和 Pandas 工具箱对数据进行整合、清洗、分析

在数据探索、数据分析阶段,我们会使用 Pandas 和 Matplotlib 工具箱进行数据分析和可视化图形的制作

在数据分析挖掘阶段,我们又会使用 Statsmodels 统计分析库和 Scikit-Learn 数据挖掘库,进行模型分析和建设

下面是数据分析中最常用的python库,我们需要一并掌握。

常见Python库
数据分析阶段 库名 功能说明
数据理解、准备阶段 Numpy 科学计算基础库
SciPy 科学计算库
Pandas 数据分析库
Matplotlib 数据可视化库
模型建设、评估和发布阶段 StatsModels 统计分析库
Scikit-Learn 机器学习库

2.第三方库介绍

1.NumPy库

NumPy几乎是一个无法回避的科学计算工具包,最常用的也许是它的N维数组对象,其他还包括一些成熟的函数库,用于整合 C/C++和Fortran代码的工具包、线性代数、傅立叶变换和随机数生成函数等。 NumPy提供了ndarray(N维数组对象)和 ufunc(通用函数对象)两种基本的对象,ndarray 是存储单一数据类型的多维数组,而 ufunc 则是能够对数组进行处理的函数。
在后续章节中,我们会对NumPy工具句进行详细的介绍,在此不再赘述。

2.SciPy库

SciPy 是一个开源的 Python 算法库和数学工具包,SciPy 包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅立叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算,其功能与软件MATLAB 类似, NumPy 和 SciPy 常常结合使用,Python 大多数机器学习库都依赖于这两个模块。

3.Pandas库

Pandas也是基于 NumPy 和 Matplotlib 开发的,主要用于数据分析和数据可视化,它的数据结构 DataFrame 和 R 语言里的数据框很像,特别是对于时间序列数据有自己的一套分析机制,在后续的章节中会单独介绍 Pandas 工具包的用法。

4.Matplotlib库

Matplotlib是Python最著名的绘图库,它提供了一整套和 Matlab 相似的命令 API,十分适合交互制图,而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。Matplotlib 可以配合 ipython 使用,提供不亚于 Matlab 的绘图功能支持。

5.Seaborn 库

Seaborn 是基于 Maplotib 的 Python 可视化库,它提供了一个高级界面来绘制有吸引力的统计图形,可以使得数据可视化更加的方便、美观。
Seaborn 是在 Matplotlib 的基础上进行了更高级的API封装,从而使作图更加容易,在大多数情况下使用Seaborn 能做出很具有吸引力的图。而使用 Matplotlib 就能制作具有更多特色的图,应该把 Saborn 视为 Matplotlib 的补充,而不是替代物,同时 Seaborn 能高度兼容 NumPy 与 Pandas 数据结构,以及 SciPy 与 StatsModels 等统计模式。
在后续章节中,我们也会详细介绍 Seaborn 库的绘制方法。

6.StatsModels库

StatsModels 是一个 python 模块,它提供对许多不同统计模型估计的类和函数。并且可以进行统计测试和统计数据的探索。
相比于 Pandas 着眼于数据的读取、处理和探索,StatsModels 则更加注重数据的统计建模分析,它使得 Python 有了R语言的味道。 StatsModels 支持与 Pandas 进行数据交互,因此它与 Pandas 结合,成为了 Python 下强大的数据分析工具结合。
在后续的章节中,我们也会调用 StatsModels 模块的函数进行数据挖掘分析工作。

7.Scikit-Learn库

Scikit-Learn 是一个基干NumPy、SciPy、Matplotlib 的开源机器学习工具包,主要涵盖分类、回归和聚类算法,例如线性回归、逻辑回归、支持向量机、朴素贝叶斯、随机森林、K-means等算法。Scikit-Learn 最大的特点就是为用户提供各种机器学习的算法接口,可以让用户简单、高效地进行数据挖掘和数据分析。

你可能感兴趣的:(Python学习笔记,python)