7.4二维数据的格式化和处理
- 使用列表类型。
——使用两层for循环遍历每个元素
——外层列表中每个元素可以对应一行,也可以对应一列 - 数据维度是数据的组织形式
——一维数据:列表和集合类型
[3.1398, 3.1349, 3.1376] 数据间有序
{3.1398, 3.1349, 3.1376} 数据间无序
——二维数据:列表类型
[[3.1398,3.1349,3.1376], [3.1413, 3.1404, 3.1401]] - CSV格式与二维数据的存储
——CSV:Comma-Separated Values,用逗号分隔值的一种方式
__国际通用的一二维数据存储格式,一般.csv扩展名
__每行一个一维数据,采用逗号分隔,无空行
__Excel和一般编辑软件都可以读入或另存为csv文件
存储格式的约定:
——如果某个元素缺失,逗号仍要保留
——二维数据的表头可以作为数据存储,也可以另行存储
——逗号为英文半角逗号,逗号与数据之间无额外空格
若数据中包含逗号,在该逗号外侧加引号或者加转义符 - 二维数据的存储:按行存还是按列存
——按行或列均可,具体由程序决定
——一般索引习惯:ls[row][column],先行后列
——根据一般习惯,外层列表的每个元素是一行,按行存
按行存好处:先行后列获得其中的元素 - 二维数据的处理
#从csv格式的文件中读入数据
fo = open(fname)
ls = []
for line in fo:
line = line.replace("\n", "") #将每一行最后的回车替换为空字符串
ls.append(line.split(",")) #将逗号分隔开的数据加入列表中
fo.close()
#将保存在列表中的数据写回文件中
ls = [[],[],[]] #二维列表
f = open(fname, "w")
for item in ls:
f.write(",".join(item) + '\n') #将元素间增加逗号,并最后增加\n作为该行的结尾
fo.close()
#逐一遍历二维列表 c采用二层for循环
ls = [[1,2],[3,4],[5,6]]
for row in ls:
for column in row:
print(column)
7.5worldcloud的使用
wordcloud库基本介绍
wordcloud是优秀的词云展示第三方库
——词云以词语为基本单位,更加直观和艺术的展示文本
安装wordcloud库,cmd命令行下:pip install wordcloud
wordcloud库使用说明
wordcloud库把词云当作一个WordCloud对象
——wordcloud.WordCloud()代表一个文本对应的词云
——可以根据文本中词语出现的频率等参数绘制词云
——绘制词云的形状、尺寸和颜色都可以设定
w = wordcloud.WordCloud()
_以WordCloud对象为基础
_配置参数、加载文本、输出文件
方法 | 描述 |
---|---|
w.generate(txt) | 向WordCloud对象w中加载文本txt,如w.generate(“Python and WordCloud”) |
w.to_file(filename) | 将词云输出为图像文件,.png或.jpg格式,w.to_file(“outfile.png”) |
- 词云绘制步骤介绍
——步骤1:配置对象参数
——步骤2:加载词云文本
——步骤3:输出词云文件
import wordcloud
c = wordcloud.WordCloud() #生成词云变量赋给变量c
c.generate("wordcloud by Python") #将文本加载到词云中
c.to_file("pywordcloud.png") #将词云效果输出到pywordcloud.png文件中
- wordcloud库在由文本变成词云的过程中做了什么?
——1.分隔:以空格分隔单词
——2.统计:单词出现次数并过滤
——3.根据统计配置字号
——4.布局:颜色环境尺寸 - 生成词云可配置的参数
参数 | 描述 |
---|---|
width | 指定词云对象生成图片的宽度,默认400像素。w = wordcloud.WordCloud(width = 600) |
height | 指定词云对象生成图片的高度,默认200像素。w = wordcloud.WordCloud(height = 400) |
min_font_size | 指定词云中字体的最小字号,默认4号 |
max_font_size | 指定词云中字体的最大字号,根据高度自动调节 |
font_step | 指定词云中字体字号的步进间隔,默认为1。w = wordcloud.WordCloud(font_step = 2) |
font_path | 指定字体文件的路径,默认为None。w = wordcloud.WordCloud(font_path=“msyh.ttc”) |
max_words | 指定词云显示的最大单词数量,默认200。w=wordcloud.WordCloud(max_words = 20) |
stop_words | 指定词云的排除词列表,即不显示的单词列表。w=wordcloud.WordCloud(stop_words={“Python”}) |
mask | 指定词云形状,默认为长方形,需要引用imread()函数 |
background_color | 指定词云图片的背景颜色,默认为黑色。w = wordcloud.WordCloud(background_color=“white”) |
from scipy.misc import imread
mk = imread("pic.png")
w = wordcloud.WordCloud(mask = mk)
#小例子
import wordcloud
txt = "life is short, you need python"
w = wordcloud.WordCloud(background_color="white")
w.generate(txt)
w.to_file("pywcloud.png")
#中文词云,首先对中文文本分词并组成空格构成的字符串,之后再进行处理
import jieba
import wordcloud
txt = "程序设计语言是计算机能够理解和识别用户操作意图的一种交互体系,它按照特定规则组织计算机指令,使计算机能够自动进行各种运算处理"
w=wordcloud.WordCloud(width=1000, font_path = "msyh.ttc",height=700)
w.generate(" ".join(jieba.lcut(txt))) #将文本变成列表,将列表元素用空格分隔,构成长字符串,长字符串会赋给w
w.to_file("pyword.png")
7.6实例:政府工作报告
- 《决胜全面建成小康社会 夺取新时代中国特色社会主义伟大胜利》报告文字下载
- 《中共中央 国务院关于实施乡村振兴战略的意见》文字下载
- 基本思路
——步骤1:读取文件、分词整理
——步骤2:设置并输出词云
——步骤3:观察结果,优化迭代
import jieba
import wordcloud
from scipy.misc import imread
mask = imread("fiverstart.png") #引入其他形状,同文件下需要有个五角星图案的fivestart.png
f = open("新时代中国特色社会主义.txt", "r", encoding="utf-8")#读其余文件时,只需要修改文件名称。
t = f.read() #将文本内容一次性读入变量t
f.close()
ls = jieba.lcut(t)
txt = " ".join(ls)
w = wordcloud.WordCloud(font_path = "msyh.ttc",mask = mask,width = 1000, height = 700, background_color = "white")
w.generate(txt)
w.to_file("growcloud.png")
- 扩展能力
——了解wordcloud更多参数,扩展词云能力
——特色词云:设计一款属于自己的特色词云风格
——更多文件:用更多文件练习词云生成
版权声明:本文为nankai_guo原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。