导航:首页 > 编程语言 > python变量对数转换

python变量对数转换

发布时间:2023-03-08 12:35:17

1. python数据分析(八):农粮组织数据集探索性分析(EDA)

这里我们用 FAO(Food and Agriculture Organization) 组织提供的数据集,练习一下如何利用python进行探索性数据分析。

我们先导入需要用到的包

接下来,加载数据集

看一下数据量,

看一下数据的信息,

我们先来看一下variable,variable_full这两列的信息,

看一下统计了多少国家,

看一下有多少个时间周期,

看一下时间周期有哪些,

我们看一下某一列某个指标的缺失值的个数,比如variable是total_area时缺失值的个数,

我们通过几个维度来进行数据的分析:

我们按照上面的处理继续,现在我们想统计一下对于一个时间周期来说,不同国家在这个周期内的变化情况,

我们也可以按照国家分类,查看某个国家在不同时期的变化,

我们还可以根据属性,查看不同国家在不同周期内的变化情况,

我们还可以给定国家和指标,查看这个国家在这个指标上的变化情况,

我们还有region(区域)没有查看,我们来看一下:

通过上图可以看出,区域太多,不便于观察,我们可以将一些区域进行合并。减少区域数量有助于模型评估,可以创建一个字典来查找新的,更简单的区域(亚洲,北美洲,南美洲,大洋洲)

我们来看一下数据变化,

紧接着上面的数据处理,我们重新导入一下包,这次有一些新包,

我们看一下水资源的情况,

通过上图可以看出只有一小部分国家报告了可利用的水资源总量,这些国家中只有极少数国家拥有最近一段时间的数据,我们将删除变量,因为这么少的数据点会导致很多问题。

接下来我们看一下全国降雨指数,

全国降雨在2002年以后不再报到,所以我们也删除这个数据,

我们单独拿出一个洲来进行分析,举例南美洲,我们来看一下数据的完整性,

我们也可以指定不同的指标,

接下来,我们使用 pandas_profiling 来对单变量以及多变量之间的关系进行统计一下,

这里我们要计算的是,比如

我们按照 rural_pop 从小到大进行排序,发现的确有几个国家的农村人口是负数,

人口数目是不可能小于0,所以这说明数据有问题,存在脏数据,如果做分析预测时,要注意将这些脏数据处理一下。

接下来我们看一下偏度,我们规定,

正态分布的偏度应为零,负偏度表示左偏,正偏表示右偏。

偏度计算完后,我们计算一下峰度, 峰度也是一个正态分布,峰度不能为负,只能是正数 ,越大说明越陡峭,

接下来我们看一下,如果数据分布非常不均匀该怎么办呢,

上图是2013-2017年国家总人数的分布,通过上图我们发现,人口量少于200000(不考虑单位)的国家非常多,人口大于1200000的国家非常少,如果我们需要建模的话,这种数据我们是不能要的。这个时候我们应该怎么办呢?

通常,遇到这种情况,使用 log变换 将其变为正常。 对数变换 是数据变换的一种常用方式,数据变换的目的在于使数据的呈现方式接近我们所希望的前提假设,从而更好的进行统计推断。

接下来,我们用log转换一下,并看一下它的偏度和峰值,

可以看出偏度下降了很多,减少了倾斜。

可以发现峰度也下降了,接下来我们看一下经过log转换后的数据分布,

虽然数据还有一些偏度,但是明显好了很多,呈现的分布也比较标准。

首先我们先来看一下美国的人口总数随时间的变化,

接下来,我们查看北美洲每个国家人口总数随着时间的变化,

这个时候我们发现,一些国家由于人口数量本身就少,所以整个图像显示的不明显,我们可以改变一下参照指标,那我们通过什么标准化?我们可以选择一个国家的最小、平均、中位数、最大值...或任何其他位置。那我们选择最小值,这样我们就能看到每个国家的起始人口上的增长。

我们也可以用热度图来展示,用颜色的深浅来比较大小关系,

接下来我们分析一下水资源的分布情况,

我们可以进行一下log转换,

我们用热度图画一下,

连续值可以画成散点图,方便观看,
我们来看一下随着季节变化,人均GDP的变化情况,

相关程度:
相关度量两个变量之间的线性关系的强度,我们可以用相关性来识别变量。

现在我们单独拿出来一个指标分析是什么因素与人均GDP的变化有关系,正相关就是积极影响,负相关就是消极影响。

当我们在画图的时候也可以考虑一下利用bined设置一下区间,比如说连续值我们可以分成几个区间进行分析,这里我们以人均GDP的数量来进行分析,我们可以将人均GDP的数据映射到不同的区间,比如人均GDP比较低,比较落后的国家,以及人均GDP比较高,比较发达的国家,这个也是我们经常需要的操作,

做一下log变换,这里是25个bin

我们指定一下分割的标准,

我们还可以看一下人均GDP较低,落后国家的内部数据,下面我们看一下内部数据分布情况,用boxplot进行画图,

对于这部分的分布,我们还可以统计看一下其他指标,如下图所示,我们还可以看一下洪水的统计信息,

2. 用python编写:输入n对数,输出其中max与min。

a = input()
max(a)
min(a)
第一行注意下输入的格式和类型。
python里面自带max和min方法。不用再去对元组或列表进行排序,找最大值最小值

3. python中提供的数据类型转换函数有哪些,作用是什么

作用就是把合理的数据转换为需要的类型。int()整数,float()浮点数,str()字符串,list()列表,tuple()元组,set()集合……
比如a='12'这个是字符串类型,用int函数a=int(a)这时变量a就是整型,字符串'12'变为了整数12。Python没有变量声明的要求,变量的属性在赋值时确定,这样变量的类型就很灵活。
有一种题目判断一个整数是否回文数,用字符串来处理就很简单
a=1234321#整数
if str(a)==str(a)[::-1]:#借助字符串反转比较就可以确定是否回文数。
还比如元组b=(1,3,2,4),元组是不可以更新删除排序成员的,但是列表是可以的,通过列表函数进行转换来实现元组的更新删除和排序。
b=(1,3,2,4)
b=list(b)
b.sort()
b=tuple(b)
这时得到的元组b就是一个升序的元组(1,2,3,4)
再比如你要输入创建整数列表或者整数元组基本上写法相同,就是用对应的函数来最后处理。
ls=list(map(int,input().split()))#这个就是列表
tup=tuple(map(int,input().split()))#这个就是元组
再比如有个叫集合的,集合有唯一性,可以方便用来去重。
ls=[1,2,3,1,2,3,1,2,3]
ls=list(set(ls))#通过set()去重后,现在的ls里就是[1,2,3]去重后的列表。

4. Python中如何对series里所有的值取对数

以后应多使用论坛中的Eviews专区。
ln在Eviews中表示为log,如数学中的ln(Q)在Eviews中表示为log(Q)
直接定义啊 y=log(x) 在软件中log,论文模型中ln不用取对数直接在估计的时候用 log( )就好了
如果真要取的话
quick\ generate series\
输入新变量,比如 r=log( )
r就是取完对数后的序列
在工作文件中先定义一个新的变量Y(假设原变量是w,已存在的变量),然后在工作文件中点击genr,在方程中输入Y=log(w),确定。
series y=log(x)
在最小二乘里面输入log(y) log(x) c也可以
产生个新变量:输入命令y=log()

5. 如何在PYTHON 中写一个函数交换两个变量的值

python交换两个变量的值很简单,a,b = b,a 就可以,写成函数,代码如下:

defjh(a,b):
returnb,a

x=1
y=2
x,y=jh(x,y)
print(x,y)

执行结果如下:

6. python如何对矩阵里的元素按照正负号取对数

import math
martix=[[1,2,-3],[-4,5,6],[7,-8,9]]

result=[[abs(x)//x*math.log(x if x>0 else -x,2) for x in row ] for row in martix]

print(result)

阅读全文

与python变量对数转换相关的资料

热点内容
android录音开源 浏览:453
弗洛伊德算法c 浏览:6
udp命令字 浏览:659
app服务端java源码 浏览:798
电脑用文件夹玩大型游戏 浏览:254
安卓耳塞失灵怎么办 浏览:765
华三交换机保存命令 浏览:605
命令方块怎么调键盘 浏览:841
不把密码存在服务器上怎么办 浏览:398
怎么让指令方块的命令消失 浏览:543
用单片机做plc 浏览:404
云服务器进入子目录命令 浏览:795
服务器机柜如何配电 浏览:578
怎么删除iphone资源库里的app 浏览:940
pdf鱼 浏览:648
单片机pcf8591什么作用 浏览:805
sql命令学院 浏览:283
加密软件在电脑那个盘 浏览:988
android获取外部存储 浏览:573
怎么查自己家的服务器地址 浏览:858