python 一,二维数据的个数化和处理

目录

数据的几种类型

数据的操作周期

一维数据

一维数据的表示

一维数据的存储

一维数据的处理

一维数据的读入处理

一维数据的写入处理

二维数据

二维数据的表示

 CSV格式

二维数据的存储

二维数据的处理


数据的几种类型

一维数据
由对等关系的有序或无序数据构成,采用线性方式组织
-对应列表、数组和集合等概念
二维数据
由多个一维数据构成,是一维数据的组合形式
-表格是典型的二维数据
-其中,表头可以作为二维数据的一部分,也可以作为二维数据之外的部分
多维数据
由一维或二维数据在新维度上的扩展形成
如中国大学排行榜形成的表格(二维数据)在时间维度上的扩展
高维数据
仅利用最基本的二元关系展示数据间的复杂结构
如:键值对
{
    "firstName":"Tian",
    "lastName":"Sone",
    "address":{
        "streetAddr":"中关村南大街5号",
        "city":"北京市",
        "zipcode":"100081"
        },
"professional":["Computer Netowrking","Security"]
}

数据的操作周期

存储<->表示<->操作

关系图:

 



一维数据

一维数据的表示

如果数据见有序:使用列表类型
ls=[3.1398,3.1349,3.1376]
-列表类型可以表达一维有序数据
-for循环可以遍历数据,进而对每个数据进行处理


如果数据间无序:使用集合类型
st={3.1398,3.1349,1.1376}
-集合类型可以表达一维数据
-for循环可以遍历数据,进而对每个数据进行处理
 

一维数据的存储

存储方式一:空格分隔
中国 美国 日本 德国 法国 英国 意大利
-使用一个或多个空格分隔进行存储,不换行
-缺点:数据中不能存在空格


存储方式二:逗号分隔
中国,美国,日本,德国,法国,英国,意大利
-使用英文半角逗号分隔进行存储,不换行
-缺点:数据中不能存在英文逗号


存储方式三:其他方式(通常使用)
中国$美国$日本$德国$法国$英国$意大利
-使用其他符号或符号组合分隔,建议采用特殊符号
-缺点:需要根据数据特点定义,通用性较差


 

一维数据的处理

存储<->表示

-将存储的数据读入程序

-将程序表示的数据写入文件

 

一维数据的读入处理

从空格分隔的文件中读入数据
中国 美国 日本 德国 法国 英国 意大利

 txt=open(fname).read()
 ls=txt.split()
 f.close()

从特殊符号分隔的文件中读入数据
中国$美国$日本$德国$法国$英国$意大利

txt=open(fname).read()
ls=txt.split("$")
f.close()

ps:split():拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表

一维数据的写入处理

采用空格分隔方式将数据写入文件ls=['中国','美国','日本']

ls=['中国','美国','日本']
f=open(fname,'w')    #w为一种模式
f.write(' '.join(ls))    #在增加元素中间增加空格
f.close()

采用特殊分隔方式将数据写入文件

ls=['中国','美国','日本']
f=open(fname,'w')
f.write('$'.join(ls))
f.close()

二维数据

二维数据的表示

[[3.1398,3.1349,3.1376],[3.1413,3.1404,3.1401]]
即:列表类型中的每一个元素又是一个列表
使用列表类型
[[3.1398,3.1349,3.1376],[3.1413,3.1404,3.1401]]
-使用两层for循环遍历每个元素
-外层列表中每个元素可以对应一行,也可以对应一列

 CSV格式

CSV:Comma-Separated Valuse

-国际通用的一二维数据存储格式,一般.CSV扩展名
-每行一个一维数据,采用逗号分隔,无空行
-Excel和一般编程软件都可以读入或另存为csv文件

如图:(表格转换为csv文件)

二维数据的存储

-如果某个元素缺失,逗号仍要保留
-二维数据的表头可以作为数据存储,也可以另行存储
-逗号为英文半角逗号,逗号与数据之间无额外空格
-按行存或者按列存都可以,具体有程序决定
-一般索引习惯:ls[row][coumn],先行后列
-根据一般习惯,外层列表每个元素是一行,按行存

二维数据的处理

从CSV格式的文件中读入数据

fo=open(fname)
ls=[]
for lin in fo:
	line=line.replace("\n"," ")
	ls.append(line.split(","))    #将每行元素按照split的形式用逗号分开,形成列表,加到数据后
fo.close()

将数据写入CSV格式的文件

s=[[],[],[]]		#二位列表
f=open(fname,"w")
for item in ls:
	f.write(','.join(item)+'\n')
f.close()

二维数据的逐一处理

采用二层循环

ls=[[1,2],[3,4],[5,6]]		#二位列表
for row in ls:
	for column in row:
		print(column)
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Python是一个功能强大的编程语言,它提供了很多可视工具来绘制图形。其中,绘制二维高斯分布是其中的一项功能。 二维高斯分布是指一个具有两个参数的概率分布,它的概率密度函数可以用二元正态分布函数表示。要绘制二维高斯分布,可以使用Python中的Matplotlib库。 首先,需要导入必要的库: import numpy as np import matplotlib.pyplot as plt 然后,定义一个二维高斯分布的函数: def gaussian(x, y, mu_x, mu_y, sigma_x, sigma_y): return np.exp(-((x-mu_x)**2/(2*sigma_x**2) + (y-mu_y)**2/(2*sigma_y**2))) 其中,x、y是坐标值,mu_x、mu_y是均值,sigma_x、sigma_y是标准差。 接下来,生成一组坐标点,并计算每个点的高斯分布值: x, y = np.meshgrid(np.linspace(-3, 3, 100), np.linspace(-3, 3, 100)) z = gaussian(x, y, 0, 0, 1, 1) 最后,使用plt.contour函数绘制等高线图: plt.contour(x, y, z) plt.show() 这样就可以绘制出一个二维高斯分布的图形了。如果需要修改均值和标准差,只需要修改mu_x、mu_y、sigma_x、sigma_y即可。 ### 回答2: 二维高斯分布是一类常见的概率分布,也是统计学中非常重要的一个分布模型,它可以用来描述很多实际问题中的数据分布。在Python中,我们可以使用Matplotlib库来绘制二维高斯分布。 要绘制二维高斯分布,我们需要了解二维高斯分布的数学公式和Matplotlib库中相关函数的使用方法。 二维高斯分布的数学公式如下: $$f(x,y) = \frac{1}{2\pi\sigma_x\sigma_y}e^{-\frac{(x-\mu_x)^2}{2\sigma_x^2}-\frac{(y-\mu_y)^2}{2\sigma_y^2}}$$ 其中,$\mu_x$和$\mu_y$是分布的均值,$\sigma_x$和$\sigma_y$是分布的标准差,$x$和$y$是二元随机变量。 在Matplotlib库中,我们可以使用matplotlib.pyplot.imshow函数来绘制二维高斯分布。 首先,我们需要生成一个网格,用于表示二维平面上的点的坐标。我们可以使用numpy库中的函数生成该网格。 import numpy as np import matplotlib.pyplot as plt # 定义均值和标准差 mean = [0, 0] cov = [[1, 0], [0, 1]] # 生成网格坐标 x, y = np.meshgrid(np.linspace(-3, 3, 100), np.linspace(-3, 3, 100)) 然后,我们根据生成的网格坐标和数学公式计算出每个点的值,用于绘制二维高斯分布的热图。 # 计算每个点的值 pos = np.empty(x.shape + (2,)) pos[:, :, 0] = x pos[:, :, 1] = y z = multivariate_normal(mean, cov).pdf(pos) 最后,我们使用imshow函数将计算出的点值绘制成热图,即可得到二维高斯分布的图像。 # 绘制热图 plt.imshow(z, cmap='hot', interpolation='nearest') plt.colorbar() plt.show() 完整的代码如下: import numpy as np import matplotlib.pyplot as plt from scipy.stats import multivariate_normal # 定义均值和标准差 mean = [0, 0] cov = [[1, 0], [0, 1]] # 生成网格坐标 x, y = np.meshgrid(np.linspace(-3, 3, 100), np.linspace(-3, 3, 100)) # 计算每个点的值 pos = np.empty(x.shape + (2,)) pos[:, :, 0] = x pos[:, :, 1] = y z = multivariate_normal(mean, cov).pdf(pos) # 绘制热图 plt.imshow(z, cmap='hot', interpolation='nearest') plt.colorbar() plt.show() 运行以上代码,即可得到一个二维高斯分布的热图。如果需要绘制不同的二维高斯分布,只需要修改均值和标准差的值即可。 ### 回答3: 高斯分布,也称正态分布,是常见的连续概率分布之一,具有钟形曲线的特点,其分布函数在数学、统计学、物理学等诸多领域有广泛的应用。在Python中,我们可以使用NumPy和Matplotlib库来绘制二维高斯分布。 首先,我们需要生成高斯分布的数据。在二维平面上,我们需要生成两个正态分布的数据,并将其合并起来。可以使用下面的代码来生成数据: ```python import numpy as np # 生成数据 x, y = np.random.multivariate_normal(mean=[0, 0], cov=[[1, 0], [0, 1]], size=1000).T ``` 其中,`numpy.random.multivariate_normal`函数可以生成二维的多元正态分布数据。`mean`是均值向量,`cov`是协方差矩阵,`size`是生成数据个数。 接下来,我们可以使用Matplotlib库中的`scatter`函数来绘制散点图。可以使用下面的代码来绘制: ```python import matplotlib.pyplot as plt # 绘制散点图 plt.scatter(x, y, s=2) plt.show() ``` 其中,`s`参数控制散点的大小。 绘制出来的散点图如下所示: ![高斯分布散点图](https://tva1.sinaimg.cn/large/008i3skNly1guz7jh4bkgj60os0bwwfr02.jpg) 可以看到,生成的数据点呈现出了高斯分布的特点。 除了绘制散点图,我们还可以使用密度图来更加清晰地显示二维高斯分布的轮廓。可以使用Matplotlib库中的`hexbin`函数来绘制二维密度图。可以使用下面的代码来绘制: ```python # 绘制密度图 plt.hexbin(x, y, gridsize=30, cmap='Blues') plt.show() ``` 其中,`gridsize`参数控制网格的大小,`cmap`参数控制颜色映射。 绘制出来的密度图如下所示: ![高斯分布密度图](https://tva1.sinaimg.cn/large/008i3skNly1guz7qeuq5xj60oq0d4mx502.jpg) 可以看到,密度图显示了二维高斯分布的轮廓,更加清晰地展示了数据的分布规律。 综上所述,Python绘制二维高斯分布可以通过生成数据和使用Matplotlib库来绘制散点图和密度图。这不仅展示了Python的分析能力,也体现了Python在科学计算领域的优越性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿勉要睡觉(原神启动版)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值