课程名称:构建数据分析工程师能力模型,实战八大企业级项目
课程章节:第二章:Python使用方法 2-3 2-4
课程讲师:fish
课程内容:
- 列表推导:创建一个空列表,然后通过for循环来给列表添加新元素,并且需要通过if语句保证x在一定数值范围。
"""常规操作"""
data = []
for x in range(-5, 5):
if x >= -2 :
data.append(x ** 2)
print(data)
# [4,1, 0, 1, 2, 4, 9, 16]
"""列表推导"""
data = [(x ** 2) for x in range(-5, 5) if x >= -2]
print(data)
# [4, 1, 0, 1, 4, 9, 16]
函数使用:函数能提高应用的模块性,和代码的重复利用率。比如封装一个文本分词函数、相似性计算函数等。
import numpy as np
def eculidDisim(x, y):
return np.sqrt(sum(pow(a-b, 2) for a, b in zip(x, y)))
a = np.array([1,2,3])
b = np.array([4,5,6])
print(eculidDisim(a, b))
# 5.196152422706632
异常处理:try…except…
try:
# 可正常执行代码
except:
# 异常处理,返回值
Join 和 Split 实现字符串连接,分割
Lambda表达式:一种小的匿名函数,其功能是执行某种简单的表达式或计算,而无需完全自定义函数(个人比较喜欢)
func = lambda X, Y : X * Y
print(func(5, 6))
# 30
Map函数:Map()是一种内置的Python 函数,方法会将,一个函数映射到序列的每一个函数上,生成新的队列,包含所有函数的返回值。
Filter函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件的元素组成的新的列表。
Itertools模块:函数大多是返回各种迭代器对象,其中很多函数的作用需要我们平时要写很多代码才能达到,然而运行效率反而更低。
Numpy
- 快速高效的创建与处理数组对象
- 多个数组合并处理
- NumPy的通用函数
Numpy的特点:
- Numpy 的底层是使用C语言编写的,处理速度快。
- Numpy 提供的数据结构(即数组)比 Python 内置的数据结构访问效率更高。
- 支持大量高纬度数组以及矩阵运算。
- 提供大量数学函数库。
数组
- Numpy 中重要的数据结构——数组对象,即numpy.ndarray
特点:
- 用于存放同类型元素的集合。
- 每个元素在内存中具有相同存储大小的区域。
array()函数
- numpy.array(object)
- 其中object的类型只可以是列表或者元组。
数组和列表的区别
- 数组只能保存相同的类型,而列表可以保存任何类型的数据。
import numpy as np
a = np.array([2,3,4,5])
print(a)
"""输出数组元素以及其属性"""
print(a, a.dtype)
# [2 3 4 5] int32
"""整数类型32位——> 64位"""
b = np.array([2,3,4,5], dtype=np.int64)
print(b,b.dtype)
# [2 3 4 5] int64
"""类型代码一定要放到字符串中"""
c = np.array([2,3,4,5], dtype='i8')
print(c, c.dtype)
# [2 3 4 5] int64
"""整型转浮点型"""
e = np.array([2,3,4,5], dtype=np.float64)
print(e, e.dtype)
# [2. 3. 4. 5.] float64
"""整型转复数 complex_ 相当于complex128"""
f = np.array([2,3,4,5], dtype=np.complex_)
print(f, f.dtype)
# [2.+0.j 3.+0.j 4.+0.j 5.+0.j] complex128
"""整型转bool型"""
h = np.array([2,3,4,5], dtype=np.bool_)
print(h, h.dtype)
# [ True True True True] bool
"""整型转字符串"""
g = np.array([2,3,4,5], dtype=np.string_)
print(g, g.dtype)
# [b'2' b'3' b'4' b'5'] |S1
"""字符串转unicode"""
g = np.array(['hello', 'java', 'neo4j', 'postgreSQL'], dtype=np.unicode_)
print(g, g.dtype)
# ['hello' 'java' 'neo4j' 'postgreSQL'] <U10
h = np.arange(start=1, stop=10, step=2)
print(h)
# [1 3 5 7 9]
"""创建二维数组"""
ab = np.array([[1,3,5],[2,4,6]])
print(ab)
"""
[[1 3 5]
[2 4 6]]
"""
创建一维数组的其他函数
arrange()函数:创建数值范围并且返回数值对象
语法格式:numpy.arrange(start, stop, step, dtype)
- start: 开始值,默认为0,包含开始值。
- stop:结束值,不包含结束值。
- step:步长,默认值为1,该值可以为负数。
- dtype:数组元素类型。
lispace()函数:创建等差数组
语法格式:numpy.lispace(start, stop, num, endpoint, retstep, dtype)
- num:设置生成的元素个数。
- endpoint:设置是否包含结束值,False是不包含,True是包含,默认是True。
- retstep:
- 设置是否返回步长(即公差),False是不返回,默认是False,True是返回,当值是True时,返回值是二元组,包括数组和步长。
logspace():创建等比数组
语法格式:numpy.logspace(start, stop, num, endpoint, base, dtype)
- start: 开始值,值为base**start
- stop: 结束值,值为base**stop
- base:底数
创建二维数组:通过array()函数创建二维数组
课程收获:
- 学习到更多的python的内置函数以及相关方法,对列表的处理也不仅仅局限于使用for循环哈希处理,在一定的条件下,采用Numpy使得处理效率更高。于此同时,使用python的内置函数减少了for循环以及if条件等判定语句的书写数量,简化了代码结构,使得代码书写风格更加的简洁、优雅,并且提升了代码的运行效率,受益颇多。
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦