利用python 进行数据分析(第三版)第二章小结
利用python 进行数据分析(第三版)第二章小结
由于是闲暇时间看的,且为读书笔记,所以只会写一些心得和容易混淆的知识,简单知识将不在重复
-
在变量或者函数后使用?可以查看详细信息。
?
还有最后一个用途,即以类似于标准 Unix 或 Windows 命令行的方式搜索 IPython 命名空间。多个字符与通配符 (*
) 组合将显示与通配符表达式匹配的所有名称。In [1]: b = [1, 2, 3]In [2]: b? Type: list String form: [1, 2, 3] Length: 3 Docstring: Built-in mutable sequence.#function In [6]: add_numbers? Signature: add_numbers(a, b) Docstring: Add two numbers together ReturnsIn [9]: import numpy as npIn [10]: np.*load*? np.__loader__ np.load np.loads np.loadtxt
-
函数可以同时采用位置参数和关键字参数:
result = f(a, b, c, d=5, e="foo")
-
在Python中分配变量(或名称)时,使用赋值号,不是复制,而是直接引用,例如:
In [8]: a = [1, 2, 3]
假设我们分配
a
给一个新变量b
:In [9]: b = aIn [10]: b Out[10]: [1, 2, 3]
在某些语言中,赋值 if
b
会导致数据[1, 2, 3]
被复制。在 Python 中,a
和b
实际上现在引用同一个对象,即原始列表[1, 2, 3]
。可以通过向 附加一个元素a
然后检查来向自己证明这一点b
:In [11]: a.append(4)In [12]: b Out[12]: [1, 2, 3, 4]
-
访问对象的属性时,可以使用"." +Tab键,也可以使用getattr,例如:
In [32]: getattr(a, "split") Out[32]: <function str.split(sep=None, maxsplit=-1)>
-
通常,我们可能不关心对象的类型,而只关心它是否具有某些方法或行为。这有时被称为DUCK类型,俗话说“如果它像鸭子一样行走并且像鸭子一样嘎嘎叫,那么它就是一只鸭子”。例如,如果对象实现了迭代器协议,则可以验证该对象是否可迭代。对于许多对象来说,这意味着它有一个
__iter__
“神奇方法”,尽管另一种更好的检查方法是尝试使用该iter
函数:In [33]: def isiterable(obj):....: try:....: iter(obj)....: return True....: except TypeError: # not iterable....: return False
该函数将返回
True
字符串以及大多数 Python 集合类型:In [34]: isiterable("a string") Out[34]: TrueIn [35]: isiterable([1, 2, 3]) Out[35]: TrueIn [36]: isiterable(5) Out[36]: False
-
符串模板或格式化是另一个重要主题。随着 Python 3 的出现,实现此目的的方法数量不断增加,在这里我将简要描述其中一个主要接口的机制。字符串对象有一个
format
方法,可用于将格式化参数替换为字符串,生成一个新字符串:In [79]: template = "{0:.2f} {1:s} are worth US${2:d}"
在这个字符串中:
{0:.2f}
表示将第一个参数格式化为具有两位小数的浮点数。{1:s}
表示将第二个参数格式化为字符串。{2:d}
表示将第三个参数格式化为精确整数。
为了替换这些格式参数的参数,我们将参数序列传递给该
format
方法:In [80]: template.format(88.46, "Argentine Pesos", 1) Out[80]: '88.46 Argentine Pesos are worth US$1'
Python 3.6 引入了一个名为f-strings(格式化字符串文字的缩写)的新功能,它可以使创建格式化字符串变得更加方便。要创建 f 字符串,请
f
在字符串文字前面写入字符。在字符串中,将 Python 表达式括在大括号中,以将表达式的值替换为格式化字符串:In [81]: amount = 10In [82]: rate = 88.46In [83]: currency = "Pesos"In [84]: result = f"{amount} {currency} is worth US${amount / rate}"
可以使用与上面的字符串模板相同的语法在每个表达式之后添加格式说明符:
In [85]: f"{amount} {currency} is worth US${amount / rate:.2f}" Out[85]: '10 Pesos is worth US$0.11'
-
在现代 Python(即 Python 3.0 及更高版本)中,Unicode 已成为一流的字符串类型,可以更一致地处理 ASCII 和非 ASCII 文本。在旧版本的 Python 中,字符串都是字节,没有任何显式的 Unicode 编码。假设您知道字符编码,则可以转换为 Unicode。下面是一个包含非 ASCII 字符的 Unicode 字符串示例:
In [86]: val = "español"In [87]: val Out[87]: 'español'
我们可以使用以下方法将此 Unicode 字符串转换为其 UTF-8 字节表示形式
encode
:In [88]: val_utf8 = val.encode("utf-8")In [89]: val_utf8 Out[89]: b'espa\xc3\xb1ol'In [90]: type(val_utf8) Out[90]: bytes
假设您知道对象的 Unicode 编码
bytes
,您可以使用以下方法返回decode
:In [91]: val_utf8.decode("utf-8") Out[91]: 'español'
-
内置的 Python
datetime
模块提供datetime
、date
、 和time
类型。该类型结合了和datetime
中存储的信息,是最常用的:date``time
In [113]: from datetime import datetime, date, timeIn [114]: dt = datetime(2011, 10, 29, 20, 30, 21)In [115]: dt.day Out[115]: 29In [116]: dt.minute Out[116]: 30
给定一个
datatime
实例,可以使用data
和time
方法获取它的data和time对象。In [117]: dt.date() Out[117]: datetime.date(2011, 10, 29)In [118]: dt.time() Out[118]: datetime.time(20, 30, 21)
该
strftime
方法将 a 格式化datetime
为字符串:In [119]: dt.strftime("%Y-%m-%d %H:%M") Out[119]: '2011-10-29 20:30'
可以使用以下函数将字符串转换(解析)为
datetime
对象strptime
:In [120]: datetime.strptime("20091031", "%Y%m%d") Out[120]: datetime.datetime(2009, 10, 31, 0, 0)
当聚合或以其他方式对时间序列数据进行分组时,会常常用到替代datatime时间序列的一些值,例如,将
minute
和second
字段替换为零:In [121]: dt_hour = dt.replace(minute=0, second=0)In [122]: dt_hour Out[122]: datetime.datetime(2011, 10, 29, 20, 0)
由于
datetime.datetime
是不可变类型,因此此类方法总是会生成新对象。所以在前面的例子中,dt
没有被修改:In [123]: dt Out[123]: datetime.datetime(2011, 10, 29, 20, 30, 21)
两个对象的差异
datetime
产生一个datetime.timedelta
类型:In [124]: dt2 = datetime(2011, 11, 15, 22, 30)In [125]: delta = dt2 - dtIn [126]: delta Out[126]: datetime.timedelta(days=17, seconds=7179)In [127]: type(delta) Out[127]: datetime.timedelta
输出
timedelta(17, 7179)
表明timedelta
编码偏移量为 17 天 7,179 秒。
相关文章:
利用python 进行数据分析(第三版)第二章小结
利用python 进行数据分析(第三版)第二章小结 由于是闲暇时间看的,且为读书笔记,所以只会写一些心得和容易混淆的知识,简单知识将不在重复 在变量或者函数后使用?可以查看详细信息。?还有最后一个用途,即…...

【ASP.NET MVC】使用动软(四)(12)
一、筛选器类和Cookie实现路由 需解决的问题: 网站登录往往需要用户名密码验证,为避免重复验证,一般采用Cookie 、Session等技术来保持用户的登录状态: Session是在服务端保存的一个数据结构,用来跟踪用户的状态&…...

【web逆向】全报文加密及其登录流程的分析案例
aHR0cHM6Ly9oZWFsdGguZWxkZXIuY2NiLmNvbS9zaWduX2luLw 涉及加密库jsencrypt 定位加密点 先看加密的请求和响应: 全局搜索加密字段jsondata,这种非特定参数的一般一搜一个准,搜到就是断点。起初下的断点没停住,转而从调用栈单步…...
MyBatis枚举映射类讨论
前言 本篇需要对于MyBatis有一定的认识,而且只是针对于TypeHandler接口来讨论,暂不讨论其他方面的问题 TypeHandler概叙 TypeHandler是MyBatis设计的一个用于参数的接口,你们会不会很好奇MyBatis是如何把整形,时间,字符…...

微信开发之朋友圈自动点赞的技术实现
简要描述: 朋友圈点赞 请求URL: http://域名地址/snsPraise 请求方式: POST 请求头Headers: Content-Type:application/jsonAuthorization:login接口返回 参数: 参数名必选类型说明wId…...

Linux命令200例:sed对文本进行修改、替换和删除等操作的强大工具(常用)
🏆作者简介,黑夜开发者,全栈领域新星创作者✌。CSDN专家博主,阿里云社区专家博主,2023年6月csdn上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 &…...

python 合并多个excel文件
使用 openpyxl 思路: 读取n个excel的文件,存储在一个二维数组中,注意需要转置。将二维数组的数据写入excel。 安装软件: pip install openpyxl源代码: import os import openpyxl # 将n个excel文件数据合并到一个…...

【Docker】性能测试监控平台搭建:InfluxDB+Grafana+Jmeter+cAdvisor
前言 在做性能测试时,如果有一个性能测试结果实时展示的页面,可以极大的提高我们对系统性能表现的掌握程度,进而提高我们的测试效率。但是我们每次打开Jmeter都会有几个硕大的字提示别用GUI模式进行负载测试,而且它自带的监视器效…...

wordpress日主题Ripro9.0最新二开修正源码下载+美化包和插件
日主题Ripro9.0最新二开升级修正源码美化包和插件,RiPro9.0的二开版本新模板,包含2个美化包和全屏水印以及防复制插件。 模板和美化包路径:\wp-content\themes 插件路径:\wp-content\plugins,有兴趣的自行去体验吧...

fib Model Code史海拾贝
文章目录 0. 背景1. 强度等级不一致(20230807)1.1 问题描述(20230807)1.2 问题探索 0. 背景 本文主要记录在学习了解ModelCode的过程中产生的问题。当然,主要是我个人认为有意思的地方。欢迎有共同兴趣的网友留言一起…...

6.7.tensorRT高级(1)-使用onnxruntime进行onnx模型推理过程
目录 前言1. python-ort2. C-ort总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程,之前有看过一遍,但是没有做笔记,很多东西也忘了。这次重新撸一遍,顺便记记笔记。 本次课程学习 tensorRT 高级-使用 onnxruntime 进行 on…...
360未来安全研究院笔试题
笔试时间:2020.04.16,15:00-17:30。 岗位:Linux 安全开发工程师(实习生) 题型: 能力测试——逻辑题(20个5分=100分) 专业测试——客观题(40个2分=80分) 专业测试——在线编程题(2个25分=50分) 逻辑题 一共40道题目,很多逻辑推断题,包含数字找规律和图片找…...
Linux SSH 远程连接主机,并执行命令
应用场景 当需要远程到另一台Linux上,并在另一台机器上执行 Shell 命令,则需要注意命令的书写格式 示例说明 远程到 192.158.157.47 机器上,并执行命令 cd /tmp && ./zabbixagent_install.sh && echo Success 1、错误方式…...

FAST协议详解1 不同数据类型的编码与解码
一、概述 FAST协议里不同的数据类型在编码时有非常大的区别,比如整数只需要将二进制数据转为十进制即可,而浮点数则需要先传小数点位数,再传一个整数,最后将二者结合起来才是最终结果。本篇使用openfast自设了一些数据并编码成FA…...

黑马大数据学习笔记5-案例
目录 需求分析背景介绍目标需求数据内容DBeaver连接到Hive建库建表加载数据 ETL数据清洗数据问题需求实现查看结果扩展 指标计算需求需求指标统计 可视化展示BIFineBI的介绍及安装FineBI配置数据源及数据准备 可视化展示 P73~77 https://www.bilibili.com/video/BV1WY4y197g7?…...
网络编程——TCP/IP协议族(IP协议、TCP协议和UDP协议……)
TCP/IP协议族 一、IP协议 1、IP协议简介 IP协议又称网际协议 特指为实现在一个相互连接的网络系统上从源地址到目的地传输数据包(互联网数据包)所提供必要功能的协议,是网络层中的协议。 2、特点 不可靠:它不能保证IP数据包能成功地到达它的目的地,仅…...
Oracle SQL存储过程能够返回表吗
使用Oracle游标返回表数据 在Oracle存储过程中,我们可以使用游标来返回表的数据。游标是一种类似于指针的数据类型,可以用来遍历和操作结果集。以下是一个示例的Oracle存储过程,通过游标返回表数据: CREATE OR REPLACE PROCEDUR…...
2 Vue使用v-bind来代替{{}}取值
注意!当两个具有共同id的标签都要从数据层拿值时,需要使用div标签,赋予他们共同的id,不然其中有一个会拿不到数据! v-bind用来绑定前标签的属性,然后对属性赋值。{{}}用来对前后标签中的文本赋值。使用方法…...

20230807在WIN10下使用python3将TXT文件转换为DOCX(在UTF8编码下转换为DOCX有多一行的瑕疵)
20230807在WIN10下使用python3将TXT文件转换为DOCX(在UTF8编码下转换为DOCX有多一行的瑕疵) 2023/8/7 12:58 https://translate.google.com/?slen&tlzh-CN&opdocs 缘起,由于google的文档翻译不支持SRT/TXT格式的字幕,因此…...

Flutter(八)事件处理与通知
1.原始指针事件处理 一次完整的事件分为三个阶段:手指按下、手指移动、和手指抬起,而更高级别的手势(如点击、双击、拖动等)都是基于这些原始事件的。 Listener 组件 Flutter中可以使用Listener来监听原始触摸事件 Listener({…...

利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...

Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...

如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...

企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...