0
点赞
收藏
分享

微信扫一扫

Python 数据处理与分析(二) 设计一个高回报的投资组合(投资回报和风险分析)任务 1:Python 语法和常用软件包(库)回顾

文章目录

1. 学习目标

2. 操作讲解

2.1 练习1

2.2 练习2

2.3 练习3

2.4 练习4

2.5 练习5

2.6 练习6

2.7 练习7

2.8 练习8

2.9 练习9

2.10 练习10

2.11 练习11

2.12 练习12

2.12 小结


1. 学习目标

  • 了解 Python 语言的常用语句和语法
  • 了解 Python 语言中常见的软件包(库)

 


2. 操作讲解

        Python 语言诞生于上世纪 90 年代,并在最近的十多年里逐步成为炙手可热的一门编程语言。这主要是因为 Python 语言不仅书写语法简洁、自带函数丰富,而且还形成了良好的生态圈,人们为其打造了很多实用的科学软件包,被广泛应用于金融、经济学、数据科学和机器学习等领域。

        也正是因为此,Python语言特别适合数据分析,它强大的功能将让你事半功倍。从这个项目开始,我们将使用一系列的实战任务,让你深刻理解 Python 语言在数据分析领域中的应用。在开始具体数据分析之前,我们要先回顾一下 Python 语言中常见的语句,和常用的软件包,确保你能顺利地完成后面的项目实战。

        和多数编程语言一样,Python 也有变量的概念,这也是最基础的概念之一。请注意 Python 中变量是区分大小写的,x 和 X 表示不同的变量。下面这段代码展示了如何给变量赋值,以及两个变量之间的加和操作,最后使用 print 语句输出结果。


2.1 练习1

x = 5
y = 10
print(x + y)
print(x + Y)

 最后一句 print(x + Y) 将会出错,因为之前只定义了变量 y,而没有定义变量 Y,两者是不同的。变量可以有不同的类型,主要有数值(整型、浮点型、复数、布尔型等)、字符串、列表、元组、字典、集合等。我们还可以使用 type() 函数来查看某个变量的类型。

x = 5
print(type(x))
y = 0.3
print(type(y))
z = True
print(type(z))
m = {}
print(type(m))
n = []
print(type(n))


2.2 练习2

其中字符串(string)类型需要重点讲一讲。Python 可以使用单引号,也可以使用双引号来定义一个字符串型的变量。下面的代码将一个字符串变量 unit 和数值变量 amount 合并输出了,其中 str() 将数值型转变为字符串型。

unit = 'YUAN'
amount = 10
print(str(amount) + " " + unit)


2.3 练习3

了解了变量的基本概念,然后我们来看看用于变量上的算术操作符,基础的包括加(+)、减(-)、乘(*)、除(/)、取模(%)和幂(**或者pow):

print(16 + 10)
print(16 - 10)
x = 16
y = 10
print(x * y)
print(x / y)
print(x % y)
print(x ** (y/5))
print(pow(x, y/5))


2.4 练习4

前面两个输出语句是直接在常量上进行算术操作,之后的输出语句是在变量上进行算术操作。
下一个是 Python 初学者容易混淆的 = 和 ==。一个等于符号表示赋值,而连续两个等于符号则是判断。例如下面的代码中,第一句是给变量 x 赋值,使其的值变为 5,而第二句是判断变量 x 是否等于 7,如果是则输出布尔值 True,否则就输出布尔值 False。

x = 5
print (x == 7)


2.5 练习5

除了使用 == 来判断是否相等,我们还可以使用 != 来判断是否不相等。

x = 5
print (x != 7)


2.6 练习6

而 >、< 、>=和<=用来判断是否大于、小于、大于等于和小于等于。

x = 5
print (x > 7)
print (x < 7)
print (x >= (1 + 3))


2.7 练习7

接下来是常用但是稍微复杂点的数据类型,列表。

你可以将列表看做若干个元素所组成的数组。在 Python 中字符串可以直接转换成字符组成的数组,而且元素的编号从 0 开始,也就是列表中第一个元素的编号是 0 而不是 1。另外,我们还能使用 -1 访问列表中最后一个元素、-2 访问列表中倒数第二个元素等等。

例如,下面的代码展示了字符串 “Jiker” 的第 1 个字符和第 4 个字符。

print('Jiker'[0])
print('Jiker'[4])
print('Jiker'[-1])
print('Jiker'[-2])


2.8 练习8

下面的代码定义并访问了一个列表结构,从中我们可以看出列表里可以放不同类型的元素,例如同时放入数值和字符串

x = [1, 3, '5', 7, '999']
print(x[0], x[2], x[4])


2.9 练习9

另一个常用,但是稍微复杂的数据类型是字典。

列表中的基本单位是单个的元素,而字典顾名思义,基本单位是键(Key)和值(Value)的映射,我们可以通过键来访问对应的值,例如下面代码所定义的这个字典,不仅键可以是不同的数据类型,值也可以是不同的数据类型。

x = {1: 'hello', 3:'python', '5':'data', 7:'analysis', '999': 0.98}
print(x[1], x['5'], x['999'])


2.10 练习10

了解完了常见的数据类型和以及在上面的操作,我们来看看 Python 中常见的条件语句、循环语句和函数。

首先是条件语句。

x = 5
if (x == 3):
  print('x is 5!')
elif (x > 7) and (x < 10):
  print('x is greater than 7 and less then 10')
else:
  print('I don\'t know what value x is')


2.11 练习11

其中要注意 if, elif, else 后面的冒号,以及下一行的缩进,这是 Python 的格式要求。另外,在 ‘I don’t know what value x is’ 中,don’t 的 ’ 符号之前加入了转义符 \,表示这个 ’ 不是字符串的结束,而是文本内容。

除了条件语句,循环语句也很常见,可以替我们完成很多重复的步骤,例如访问列表中的每一个元素。

x = [1, 3, '5', 7, '999']
for each in x:
  print(x)
  
y = {1: 'hello', 3:'python', '5':'data', 7:'analysis', '999': 0.98}
for each in y:
  print(y)


2.12 练习12

其中,for each in 结构表示要访问列表或者字典中的每一个元素,同样请注意冒号和缩进格式。

最终是函数,它可以帮助我们设计模块化的代码。下面是一个函数的示例。

def time_three(x):
  return x * 3

print(time_three(4))


2.12 小结

        def定义了一个名为 time_three 的函数,它的功能就是返回输入参数 x 乘以 3 的值。同样,请注意冒号和缩进格式。语句 print(time_three(4)) 调用了函数 time_three,输入参数为 4,最终输出结果 12。

        至此,我们非常快速地回顾了 Python 中常用的数据类型、变量、操作符、条件语句、循环语句和函数的知识点以及语法。它们相互之间还可以产生各种结合,用于完成更为复杂的功能,我们在之后数据分析的任务中详细讲解。请你先完成一个小练习,实现一个函数,判断一下输入的参数是否大于 10,如果大于 10,返回这个参数乘以 3 的结果,否则返回这个参数减去 2 的结果。

        除了上述这些,本次任务的另一个目标是,带你了解 Python 还有哪些实用的软件包,这些软件包也是Python成为数据分析利器的重要原因之一,我们时常会用到它们。下面的列表整理出了实战营中会使用的软件包(库)的名称,以及其主要功能。

  • NumPy:提供了多维数组对象,多种衍生的对象(例如隐藏数组和矩阵)和一个用于数组快速运算的混合的程序,包括数学、逻辑、排序、选择、I/O、离散傅立叶变换、基础线性代数、基础统计操作、随机模拟等等。
  • Pandas:通过带有标签的行和列,让我们可以使用类似关系型数据表的方式来处理数据。它还能让我们毫不费力地从诸如 csv 、tsv 类型的文件中导入数据,并快速地对数据进行复杂的转换和过滤等操作。
  • Matplotlib:从名字中 plot 这个词就可以看出,这个包是用于可视化的,通常用于二维图形的制作,在特定包的支持下也可以输出三维图形。它拥有一个方便的命令式界面,用来在 iPython 中快速作图,还包含一个面向对象的界面用来写脚本和制作复杂的图形。
  • Statsmodels:一个功能强大的统计分析包,包含了回归分析、时间序列分析、假设检验等等。它不仅书写简便,还可以与 Python 的其他的包(如 NumPy、Pandas)有效地结合,大大提高了工作效率。
  • Scikit-Learn:通常简称为 sklearn,这是一个非常强力的机器学习库,它包含了从数据预处理到训练模型的各个方面。在实战使用 scikit-learn 中可以极大地节省我们编写代码的时间并减少代码量,让我们可以有更多的精力来分析数据分布,调整模型和修改超参等。

如果你现在觉得这些包的内容过于丰富,一时半会无法掌握,也不用担心。我们后面会结合具体的任务实战,逐步讲解上述包的一些功能和用法。


 如果觉得文章写不错,那就点个赞,点个收藏吧。


举报

相关推荐

0 条评论