为了账号安全,请及时绑定邮箱和手机立即绑定

【九月打卡】第3天 Python中高级用法

标签:
Python

课程名称:构建数据分析工程师能力模型,实战八大企业级项目
课程章节:第二章: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 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消