《Python基础教程》6.3-6.16

学习周期:6.3-6.8
学习时长:
6.4 -写作业,请教同事
6.5 1h40m(08:50-09:30, 22:40-23:00) -chap10
6.6 -写作业(学习特征交叉、特征离散化)
6.7 -0h PDPDPD
6.8 1h(08:50-09:30, 23:20-23:40) -chap10
6.10 5h(11:00-14:00,21:30-22:30) -chap10 re
6.11 2h(08:50-09:40,20:00-21:00) -chap10 re
6.12 2h40m (08:50-09:30, 15:30-17:00) -chap11

学习内容:
- 一句话心得:在做作业的过程中培养了自己的动手能力,吊炸天的是pandas竟然有数据透视表的功能,pd.pivot_table()。真实碉堡了!
- 《Python基础教程》看到chap11,后面的知识和数据处理无关,另需要补充数据处理相关的知识。这部分打算通过查看同事的代码和学习机器学习相关模型的代码来积累和记录。

和同事交流的收获(SM/LB)

  1. 如何在pycharm同时运行多个实例/session(脚本)
    pycharm默认在当前窗口中运行脚本,如果当前窗口的脚本还在执行过程中,则会生成新的窗口。因此可以通过人为设定 time.sleep(second) 指令来控制脚本的输出时间,进而生成新的session,然后在不同session的窗口下运行不同的脚本。如下图:
  2. pandas有很多丰富的内置函数,但前提是需要把数据读到内存中,适合处理小量采样数据,大数据的数据预处理特征需要通过sql,或编写UDF 进行分布式处理。数据集可存在本地的csv中。
  3. 一般在解释器中进行命令输入,可记录每次运算的结果。推荐ipython,通过history命令整理代码。
  4. 常用的算法包 sklearn、xgboost的函数原始代码可以通过查看相应的git项目来学习源码。

Chap10

  • 模块使用:
    • 一个Python源码文件(.py)除了可以被直接运行外,还可以作为模块(也就是库),被其他.py文件导入。不管是直接运行还是被导入,.py文件的最顶层代码都会被运行(Python用缩进来区分代码层次),而当一个.py文件作为模块被导入时,我们可能不希望一部分代码被运行。
    • 如上,我们可以看到if name == ‘main‘相当于Python模拟的程序入口,Python本身并没有这么规定,这只是一种编码习惯。由于模块之间相互引用,不同模块可能有这样的定义,而程序入口只有一个。到底哪个程序入口被选中,这取决于name的值。
    • if name == ‘main‘的意思是:当.py文件被直接运行时,if name == ‘main‘之下的代码块将被运行;
    • 当.py文件以模块形式被导入时,if name == ‘main‘之下的代码块不被运行。
  • https://blog.csdn.net/yjk13703623757/article/details/77918633
if __name__ == '__main__'

Chap 10.1

  • set环境变量:
    • import sys
    • sys.path.append(‘c:/python’)

Chap 10.2 探究模块

  • copy 和 deepcopy的区别:https://blog.csdn.net/qq_32907349/article/details/52190796
  • import copy 和 from copy import * 的区别:http://www.runoob.com/note/26325
    • import 导入模块,每次使用模块中的函数都要是定是哪个模块。
    • from…import * 导入模块,每次使用模块中的函数,直接使用函数就可以了;注因为已经知道该函数是那个模块中的了。
  • dir(copy)
  • copy.all
  • 在编写模块的时候,像设置all这样的技术是相当有用的。因为模块中可能会有一大堆其他程序不需要或不想要的变量、函数和类,all会“客气地”将它们过滤出去。如果没有设定all,用import*语句默认将会导入模块中所有不以下划线开头的全局名称。
  • 帮助:help(copy.copy)
  • 文档:print copy.copy.doc
  • 源代码:print copy.file

Chap 10.3 标准库

  • 1.sys:访问与Python解释器联系紧密的变量和函数
    • argv:通过命令行调用python脚本时在后面添加的参数,会放置在sys.argv列表中
    • stdin
    • stdout
  • 2.os:提供访问多个操作系统服务的功能
    • environ:访问环境变量 os.environ[‘PATHONPATH’]
    • system(command):在子shell中执行操作系统命令
  • 3.fileinput:遍历文本文件的所有行
    • input:遍历行(inplace参数支持直接替换)
    • lineno:当前累计行数
    • filelineno:当前文件的行数
  • 4.集合、堆和双端队列 什么情况下会用?
    • 集合:set,是元素的集合,无序
      • 集合的操作:
        • 并集:a.union(b), a|b
        • 交集:a.intersection(b), a&b
        • 差集:a.difference(b), a-b
        • 子集:c.issubset(a), c<=a, c.issuperset(a)
      • 堆(heap,heapq):优先队列,能以任意顺序添加对象,并且在任何时间找到最小元素。
        • heappush, heappop heapreplace heapify
    • 双端序列(double-ended queue,deque):在需要按照元素增加的顺序移除元素时非常有用
      • append、appendleft、pop、popleft、rotate
  • 5.time:获得当前时间、操作时间和日期、从字符串读取时间以及格式化时间为字符串。日期可以用实数,或包含9个整数的元组(年月日、时分秒、周、当年的第n天、夏令时)
    • (2008,1,21,12,2,56,0,21,0)
    • 其他模块:time(支持日期和时间算法)、timeit(对代码段的执行时间进行计时)
  • 6.random:产生随机数、模拟任何产生随机输出的程序。伪随机。
    • random():0-1 随机实数
    • uniform(a,b):a-b随机实数
    • randrange([start], stop, [step]):同比range,返回随机数
    • choice(seq):从序列seq中返回任意元素
    • sample(seq,n):从序列seq中选取n个随机且独立的元素
    • 生成一副牌(序列推导式)
values = range(1,11)+'J Q K'.split()
suits = 'Diamonds Clubs Hearts Spades'.split()
deck = ['%s of %s' %(v,s) for v in values for s in suits]
#洗牌
random.shuffle(deck)
  • 7.shelve:在文件中存储数据
  • 8.re:regular expression(正则表达式,是可以匹配文本片段的模式)
    • 通配符(wildcard): .
    • 转义(escape):r’python.org’,让特殊字符表现得像普通字符一样,点号’.’、星号’*’、问号’?’ 当成文本字符而不是正则表达式运算符时,需要转义。P192 两个级别的转义?
      • ()?:可出现1次或不出现
      • ()*:重复0次或多次
      • ()+:重复1次或多次
      • (){m,n}:重复m~n次
    • 字符集(character set):’[A-Z]’
    • 选择符和子模式(subpattern):’python|perl’ , ‘p(ython|erl)’,
    • 开头匹配:’^ht+p’,结尾匹配:’$ht+p’
    • re的函数
      • re.compile:将包含正则表达式的字符串创建模式对象,如: re.search(pat, string)等价于pat.search(string)
      • re.search(pattern, string):在给定字符串中寻找第一个匹配给定正则表达式的子字符串
      • re.split(pattern, string, maxsplit=0):根据模式的匹配项分割字符串
      • re.findall(pattern, string):列出字符串中模式的所有匹配项
      • re.sub(pat, repl, string):将字符串中所有pat的匹配项用repl替换
      • re.escape(string):将字符串中所有特殊正则表达式字符转义
      • 贪婪模式与非贪婪模式:?
      • 理解子模式:()
      • 理解match:只匹配第一个
        • 从末尾匹配 $,为什么不对?末尾匹配,返回none
pattern = re.compile(r'.*?([a-z]+)$', re.I)
m = pattern.match('Hello World Wide Web')
# m=None
    - 参考:runoob:http://www.runoob.com/python/python-reg-expressions.html
    - 模板系统,string模块中的Template类

- 其他标准库
- csv:逗号分隔值,Comma-Separated Values
- timeit、profile、trace:测试代码使用

Chap11 文件和流

  • 让程序和外部世界(文件、网络)进行交互
  • 文件对象
  • f.read一直用使指针往后移动
  • 修改读/写的位置:f.seek(offset [,whence])
    • 其实读到一个字符串变量里对字符串进行操作也行?
  • 记得关闭文件,f.close()
    • 用with语句,打开文件并且将其赋值到变量上,可以对改变量进行操作,操作语句结束后文件自动关闭。
    • with open('filepath') as somefile:
  • read()、readline()、readlines()返回list
  • 通过fileinput实现懒惰行迭代
import fileinput
for line in fileinput.input(filename):
    process(line)
  • 今天遇到一个问题:f.write文件时加入换行符:\t\n,在文件用文本编辑器时读取时会换行显示,但f.read()会读取所有文本,包含换行符。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 作为AI语言模型,我无法提供具体的软件下载链接,以下是VirtualBox6.16下载教程的一般步骤: 1. 打开浏览器,输入VirtualBox官方网站地址:https://www.virtualbox.org/ 2. 点击页面上方的“Downloads”按钮,进入下载页面。 3. 在下载页面中,选择适合自己操作系统的版本,如Windows、MacOS或Linux等。 4. 点击对应的版本下载链接,等待下载完成。 5. 下载完成后,双击安装包进行安装。 6. 按照安装向导的提示,完成VirtualBox的安装过程。 7. 安装完成后,打开VirtualBox应用程序即可开始使用。 注意:在下载和安装过程中,要注意操作系统的版本和位数,选择正确的版本,否则可能会导致安装失败。同时,要从官方网站下载软件,避免下载不安全的第三方软件。 ### 回答2: VirtualBox是一款开源的虚拟机软件,可以在计算机上模拟出一个完整的操作系统环境。以下是VirtualBox 6.16的下载教程: 步骤一:打开浏览器,进入VirtualBox官方网站。 步骤二:在官网首页上方的导航栏中,点击"Downloads"选项。 步骤三:在Downloads页面中,可以看到各个版本的VirtualBox的下载链接。找到6.16版本,并点击下载链接。 步骤四:根据你的操作系统选择合适的版本下载。如果你的操作系统是Windows,选择Windows hosts,如果是Mac,选择OS X hosts,如果是Linux,选择相应的Linux发行版。 步骤五:点击下载后,会跳转到下载页面。在下载页面中,点击下载链接即可开始下载。 步骤六:下载完成后,找到下载的安装文件,双击运行。 步骤七:根据安装向导一步一步进行安装,直到安装完成。 步骤八:安装完成后,双击桌面上的VirtualBox图标,即可打开软件并使用。 需要注意的是,在下载和安装VirtualBox时应该选择可信的官方网站,并仔细阅读并遵循官方的安装指导,以确保下载和安装的安全性和正确性。另外,下载的文件可能较大,需要耐心等待下载完成。安装过程中也可能需要输入管理员密码或进行一些其他操作,请按照提示进行。虚拟机的使用也需要一定的电脑硬件配置,如处理器、内存等,请根据自己的电脑情况进行选择和调整。 ### 回答3: VirtualBox是一款免费的虚拟机软件,常用于在计算机上模拟多个操作系统的运行环境。以下是VirtualBox6.16的下载教程。 1. 首先,打开你的浏览器,并访问VirtualBox官方网站(www.virtualbox.org)。 2. 在网站的主页上,点击“Downloads”或“下载”按钮,进入下载页面。 3. 在下载页面上,你可以看到VirtualBox的最新版本,找到并点击对应的下载链接。 4. 在下载链接上点击后,会弹出一个对话框,选择你的操作系统(Windows、Mac、Linux等)和下载位置,点击“Save”或“保存”按钮开始下载。 5. 下载完成后,找到下载的安装包文件,并双击运行。这会启动VirtualBox的安装向导。 6. 按照安装向导的指示依次点击“Next”、“Install”、“Yes”等按钮,完成安装过程。 7. 安装完成后,你可以在开始菜单或桌面上找到VirtualBox的图标,双击打开程序。 8. 打开VirtualBox后,可以点击“New”或“新建”按钮创建一个新的虚拟机,然后按照提示设置虚拟机的名称、操作系统类型、虚拟硬盘大小等参数。 9. 设置完成后,你可以在VirtualBox中启动虚拟机,并安装你选择的操作系统。这样就可以在同一台计算机上同时运行多个操作系统了。 总的来说,下载VirtualBox6.16只需打开官方网站,选择对应版本并下载安装,然后按照指引创建和运行虚拟机即可。这款软件相对简单易用,适用于各种需求,包括学术研究、软件开发和测试等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值