6个非常实用的 Python 代码块,适合收藏~

1. 文本数据清洗与预处理

1.1 去除HTML标签

在进行文本分析时,经常需要处理一些带有HTML标签的文本,例如:

text = "<p>这是一段带有<b>HTML标签</b>的文本。</p>"

可以使用正则表达式去除所有HTML标签,代码如下:

import re

def remove_html_tags(text):

clean_text = re.sub('<.*?>', '', text)

return clean_text

clean_text = remove_html_tags(text)

print(clean_text)

# 输出:这是一段带有HTML标签的文本。

注:代码中的正则表达式含义为:<.*?> 表示匹配 `<` 和 `>` 之间的任意字符,最后的 `?` 表示非贪婪模式,即尽可能少地匹配。

1.2 去除标点符号

在文本分析中,单个或一组标点符号对结果分析可能影响较小,可根据需求选择保留或去除。以下是去除标点符号的代码实现:

import string

def remove_punctuation(text):

clean_text = ''

for char in text:

if char not in string.punctuation:

clean_text += char

return clean_text

text = "这是一段带有标点符号,如:逗号、句号、感叹号等的文本!"

clean_text = remove_punctuation(text)

print(clean_text)

# 输出:这是一段带有标点符号如逗号句号感叹号等的文本

注:string.punctuation是Python自带的字符串常量,包含所有标点符号。

1.3 去除停用词

在自然语言处理中,“停用词”是指一些在处理自然语言时被认为没有意义的词语,例如“的”、“了”、“是”等常用词语。去除这些停用词可以提高算法的准确率。这里以中文停用词表为例:

def remove_stop_words(text, stopwords):

clean_text = ''

for word in text.split():

if word not in stopwords:

clean_text += word + ' '

return clean_text

text = "这是一段带有停用词的样本,例如:的、了、是等单词需要被去除。"

stopwords = ['的', '了', '是', '等', '需要']

clean_text = remove_stop_words(text, stopwords)

print(clean_text)

# 输出:这段带有停用词样本例如单词被去除

注:stopwords是包含停用词的列表,多数情况下需要手动构建。

2. 数据可视化

2.1 柱状图

柱状图是一种常见的数据可视化类型,经常用于表现离散的数值数据。Python中有多种模块可以实现柱状图的绘制,这里以 matplotlib 为例:

import matplotlib.pyplot as plt

x_data = ["cat", "dog", "bird", "fish"]

y_data = [5, 3, 7, 2]

plt.bar(x_data, y_data)

plt.show()

执行代码后,可以看到生成的柱状图:

2.2 折线图

折线图通常用于表示数据随时间或某一变量的变化情况。Python中使用 matplotlib 模块实现折线图的绘制,以下是示例代码:

x_data = ["2020", "2021", "2022", "2023", "2024"]

y_data = [30, 55, 80, 120, 150]

plt.plot(x_data, y_data, marker='o')

plt.show()

执行代码后,可以看到生成的折线图:

3. 文件读写操作

3.1 读取文件内容

在Python中,可以使用open()函数打开文件并读取其中的内容:

filename = "example.txt"

with open(filename, "r") as f:

text = f.read()

print(text)

以上代码读取example.txt的内容,并使用with语句确保文件关闭,避免引起资源泄露。

3.2 将数据写入文件

除了读取文件内容,Python还可以将数据写入文件。这里以写入字符串为例:

filename = "example.txt"

text = "这是要写入文件的内容。"

with open(filename, "w") as f:

f.write(text)

以上代码将字符串写入example.txt文件中,如果文件不存在则会创建该文件。

4. 正则表达式

4.1 匹配单个字符

使用正则表达式可以匹配满足某种特定字符模式的字符串。其中,"."表示匹配任意一个字符,例如:

import re

text = "这是一个文本文件,其中包含各种单个字符,如 . , * & 等。"

pattern = "."

matches = re.findall(pattern, text)

print(matches)

# 输出:['这', '是', '一', '个', '文', '本', '文', '件', ',', '其中', '包', '含', '各', '种', '单', '个', '字', '符', ',', '如', '.', ',', '*', '&', '等', '。']

4.2 匹配多个字符

使用正则表达式匹配多个字符时,可以使用花括号表示匹配长度范围。例如,正则表达式 `.{2,5}` 表示匹配长度为2到5的任意字符:

text = "这是一个文本文件,其中包含了不同长度的连续字符,如 ab、abc、abcd 等。"

pattern = ".{2,3}"

matches = re.findall(pattern, text)

print(matches)

# 输出:['这是', '一个', '文本', '文件', ',其中', '包含', '了不同', '长度的', '连续', '字符,', '如ab', '、abc', '、abc', '、d 等']

5. 网络爬虫

5.1 获取HTML页面内容

使用Python中的requests库可以轻松获取网页内容,以下是一个简单示例:

import requests

url = "https://www.baidu.com"

response = requests.get(url)

html = response.text

print(html)

5.2 解析HTML页面内容

获取HTML页面内容后,需要将其解析成可读的格式。Python中有多个HTML解析库可供选择,例如:Beautiful Soup,这里以Beautiful Soup为例:

from bs4 import BeautifulSoup

soup = BeautifulSoup(html, 'html.parser')

# 获取标签内容</p> <p>title = soup.title.string</p> <p>print(title)</p> <p># 获取标签的所有文本</p> <p>p_texts = [p.text for p in soup.find_all('p')]</p> <p>print(p_texts)</p> <p></code></pre></p> <p>以上代码使用Beautiful Soup解析网页并获取title标签和所有p标签的文本内容。</p> <h2>6. 机器学习</h2> <h3>6.1 决策树</h3> <p>Python中有多个机器学习库可供选择,例如scikit-learn。以下是使用scikit-learn库实现决策树分类的示例:</p> <p><pre><code class='language-python'></p> <p>from sklearn.tree import DecisionTreeClassifier</p> <p>from sklearn.datasets import load_iris</p> <p>iris = load_iris()</p> <p>X = iris.data</p> <p>y = iris.target</p> <p>clf = DecisionTreeClassifier()</p> <p>clf.fit(X, y)</p> <p># 预测样本类别</p> <p>sample = [[5.1, 3.5, 1.4, 0.2], [6.2, 3.3, 4.5, 1.4]]</p> <p>prediction = clf.predict(sample)</p> <p>print(prediction)</p> <p></code></pre></p> <p>以上代码使用scikit-learn库的DecisionTreeClassifier类实现决策树分类,利用鸢尾花数据集进行训练。</p> <h3>6.2 神经网络</h3> <p>除了决策树,Python中还有多种实现机器学习的库和框架可供选择。以下是使用Keras框架实现简单神经网络的示例:</p> <p><pre><code class='language-python'></p> <p>from keras.models import Sequential</p> <p>from keras.layers import Dense</p> <p>from keras.utils import to_categorical</p> <p># 载入数据</p> <p>iris = load_iris()</p> <p>X = iris.data</p> <p>y = iris.target</p> <p># 对类别进行one-hot编码</p> <p>y = to_categorical(y)</p> <p># 定义模型</p> <p>model = Sequential()</p> <p>model.add(Dense(10, input_dim=4, activation='relu'))</p> <p>model.add(Dense(3, activation='softmax'))</p> <p>model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])</p> <p># 训练模型</p> <p>model.fit(X, y, epochs=50, batch_size=10)</p> <p># 预测样本类别</p> <p>sample = [[5.1, 3.5, 1.4, 0.2], [6.2, 3.3, 4.5, 1.4]]</p> <p>prediction = model.predict(sample)</p> <p>print(prediction)</p> <p></code></pre></p> <p>以上代码使用Keras框架实现了一个简单的神经网络,并利用鸢尾花数据集进行训练和测试。</p> </div> </div> <div class="bk_20"></div> <div class="mianze"> </div> <div class="bk_20"></div> <div class="blog-single-foot"> <p class="fc-show-prev-next"> <strong>上一篇:</strong><a href="https://www.yingnd.com/python/59581.html">5种Python统计次数方法技巧</a><br> </p> <p class="fc-show-prev-next"> <strong>下一篇:</strong><a href="https://www.yingnd.com/python/59583.html">64 Django -- Ajax</a> </p> </div> <div class="box-rel"> <h3>相关阅读</h3> <ul class="arc-list-2"> <li class="tt"><a title="详解Python的整数是如何实现的" href="https://www.yingnd.com/python/172973.html">详解Python的整数是如何实现的</a></li> <li class="tt"><a title="python模块之paramiko" href="https://www.yingnd.com/python/139430.html">python模块之paramiko</a></li> <li class="tt"><a title="Python如何避免文件同名产生覆盖" href="https://www.yingnd.com/python/127801.html">Python如何避免文件同名产生覆盖</a></li> <li class="tt"><a title="蓝桥杯python组——组队" href="https://www.yingnd.com/python/172125.html">蓝桥杯python组——组队</a></li> <li class="tt"><a title="python 多线程与多进程效率测试" href="https://www.yingnd.com/python/98028.html">python 多线程与多进程效率测试</a></li> <li class="tt"><a title="Python 根据相邻关系还原数组的两种方式(单向构造和双向构造)" href="https://www.yingnd.com/python/100830.html">Python 根据相邻关系还原数组的两种方式(单向构造和双向构造)</a></li> <li class="tt"><a title="pycharm如何一步一步运行" href="https://www.yingnd.com/python/173644.html">pycharm如何一步一步运行</a></li> </ul> </div> </div> </div> <div class="main-page-right"> <div class="cont-box"> <h3 class="cont-item-title">后端开发标签</h3> <ul class="tag-list"> <li><a href="https://www.yingnd.com/c-net/" title="C#.NET">C#.NET</a></li> <li><a href="https://www.yingnd.com/c/" title="C++">C++</a></li> <li><a href="https://www.yingnd.com/golang/" title="Golang">Golang</a></li> <li><a href="https://www.yingnd.com/java/" title="Java">Java</a></li> <li><a href="https://www.yingnd.com/python/" title="Python">Python</a></li> <li><a href="https://www.yingnd.com/php/" title="Php">Php</a></li> </ul> </div> <div class="bk_20"></div> <div class="cont-box"> <h3 class="cont-item-title">Python热门</h3> <ul class="arc-list-2"> <li><span class="badge fc-icon-left"> 1 </span><a href="https://www.yingnd.com/python/82864.html" title="pycharm中import导入包呈现灰色的问题及解决">pycharm中import导入包呈现灰色的问题及解决</a></li> <li><span class="badge fc-icon-left"> 2 </span><a href="https://www.yingnd.com/python/20267.html" title="使用Python和百度地图API实现地图轨迹绘制和显示功能的方法">使用Python和百度地图API实现地图轨迹绘制和显示功能的方法</a></li> <li><span class="badge fc-icon-left"> 3 </span><a href="https://www.yingnd.com/python/82880.html" title="PyCharm刷新项目(文件)目录的实现">PyCharm刷新项目(文件)目录的实现</a></li> <li><span class="badge fc-icon-left"> 4 </span><a href="https://www.yingnd.com/python/81222.html" title="Pandas之read_csv()读取文件跳过报错行的解决">Pandas之read_csv()读取文件跳过报错行的解决</a></li> <li><span class="badge fc-icon-left"> 5 </span><a href="https://www.yingnd.com/python/174426.html" title="python中args啥意思">python中args啥意思</a></li> <li><span class="badge fc-icon-left"> 6 </span><a href="https://www.yingnd.com/python/30498.html" title="如何在FastAPI中实现请求的高并发和负载均衡">如何在FastAPI中实现请求的高并发和负载均衡</a></li> <li><span class="badge fc-icon-left"> 7 </span><a href="https://www.yingnd.com/python/26169.html" title="如何使用Python和百度地图API获取城市交通拥堵情况的实时数据?">如何使用Python和百度地图API获取城市交通拥堵情况的实时数据?</a></li> </ul> </div> <div class="bk_20"></div> <div class="cont-box"> <h3 class="cont-item-title">Python更新</h3> <ul class="arc-list-2"> <li><span class="badge fc-icon-left"> 1 </span><a href="https://www.yingnd.com/python/175977.html" title="运算符、条件、输入()">运算符、条件、输入()</a></li> <li><span class="badge fc-icon-left"> 2 </span><a href="https://www.yingnd.com/python/175974.html" title="避免 Python 中的剽窃:提示和工具">避免 Python 中的剽窃:提示和工具</a></li> <li><span class="badge fc-icon-left"> 3 </span><a href="https://www.yingnd.com/python/175973.html" title="通过Python教程取得的成果 - 一">通过Python教程取得的成果 - 一</a></li> <li><span class="badge fc-icon-left"> 4 </span><a href="https://www.yingnd.com/python/175971.html" title="语义路由器 - 引导法学硕士">语义路由器 - 引导法学硕士</a></li> <li><span class="badge fc-icon-left"> 5 </span><a href="https://www.yingnd.com/python/175969.html" title="高级 Python 概念:综合指南">高级 Python 概念:综合指南</a></li> <li><span class="badge fc-icon-left"> 6 </span><a href="https://www.yingnd.com/python/175967.html" title="基于设计原则的重构:数据采集爬虫系统示例">基于设计原则的重构:数据采集爬虫系统示例</a></li> <li><span class="badge fc-icon-left"> 7 </span><a href="https://www.yingnd.com/python/175966.html" title="如何调整pycharm的字体">如何调整pycharm的字体</a></li> </ul> </div> </div> </div> <div class="bk_20"></div><div class="bk_20"></div><div class="bk_10"></div> <script src="/static/default/web/_prism/prism.js" type="text/javascript"></script> <script type="application/ld+json"> { "@context":"https://ziyuan.baidu.com/contexts/cambrian.jsonld", "@id":"https://www.yingnd.com//python/59582.html", "title":"6个非常实用的 Python 代码块,适合收藏~", "description":"1. 文本数据清洗与预处理</h2>1.1 去除HTML标签</h3>在进行文本分析时,经常需要处理一些带有HTML标签的文本,例如:text = "这是一段带有HTML标签的文本。"可以使用正则表达式去除所有HTML标签,代码如下:imp", "pubDate":"2024-03-08T11:34:42", "upDate":"2024-03-08T11:34:42" } </script> <script type="text/javascript" charset="utf-8"> $.ajax({ contentType:'application/json', url:'https://api.indexnow.org/indexnow?url=https://www.yingnd.com//python/59582.html&key=6ff5ec6c44224a05a6118d915cf009ce&keyLocation=https://www.yingnd.com/6ff5ec6c44224a05a6118d915cf009ce.txt', type:'POST', dataType:'jsonp', seccuss:function(res){ console.log(res) } }) </script> <div class="footer clearfix"> <div class="mbox"> 免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。侵权及不实信息举报邮箱至:amarlboro@yeah.net;购买联系:QQ 398402245 <a href="https://beian.miit.gov.cn/" target="_blank" style="color:#ffffff">渝ICP备2023009929号-1</a> </div> </div> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?851c16ff62627bb568fc45e3fd9fd7ce"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>