中企动力 > 头条 > python数值

网站性能检测评分

注:本网站页面html检测工具扫描网站中存在的基本问题,仅供参考。

python数值

享学课堂-python数字的显示格式 流量视频课程

img

冷淡

关注

本节内容如下:

显示格式

实例

显示格式

实例

a=1000 print('a = %d' % a) # a = 1000 print('a = %i' % a) # a = 1000 print('a = %u' % a) # a = 1000 print('a = %o' % a) # a = 1750 print('a = %x' % a) # a = 3e8 print('a = %X' % a) # a = 3E8 b = 3.14 print('b = %e' % b) # b = 3.140000e+00 print('b = %E' % b) # b = 3.140000E+00 print('b = %3.2f' % b) # b = 3.14 print('b = %3.2F' % b) # b = 3.14 b = 3.14E3 print('b = %g' % b) # b = 3140 print('b = %G' % b) # b = 3140

Python读书笔记(数字型数据) 企业视频课程

img

猴子

关注

Python与其它编程语言一样,常见的数字型无法整型(int)和浮点型两种(Float)两种。

整型就是整数,浮点型就是小数。

如果在Python中输入一个数字,则默认为10进制的,如何变为2进制、8进制和16进制的呢?

1、输入0b开头为二进制

2、输入0o开头为八进制

3、输入0x开头为十六进制

Python在IDLE中将不同进制的数字转化为10进制的数字!

换算进制用处比较少,还说说和Excel一样常用的一些运算字符吧!

在Python上应用效果如下!

相对于Excel,Python的整除和求余不用借助外在函数,直接用运算符实现即可!

接下来和大家分享的是如何将文本强制转化为数字。

Excel当中如何将文本强制转换为数字呢?

如果你回答用阿凯的Excel插件,那么可以奖励你中午多吃一个鸡腿!

至于另一种笨但是通用的方法嘛就是强制进行数字运算!

用等于号将文本加上0就可以实现强制数字转化,Python如何实现呢?

当用文本的3.14加上一个数字1是不能直接出来运算结果的,当int直接转化字符串3.14时也没有转化成功,给大家介绍两个东东!

先说明一下哦!双引号下都是文本的,和Excel是一样的。

所以用Int和Float可以转化文本至数字,但是如果原有文本是小数,不能用Int转化的。

但是原有文本里面是整数,可以用Float转化,转化后是保留一位小数的浮点数!

最后给大家介绍一个数字中的常见函数,保留N位小数,这个函数和Excel是一样的用法哦!

Round(小数,保留几位小数)

嗯 就这么多~

往期:

1、软件安装

2、变量

手把手 | 数据科学速成课:给Python新手的实操指南 新手视频课程

img

班尼路

关注

大数据文摘作品

编译:王梦泽、丁慧、笪洁琼、Aileen

数据科学团队在持续稳定的发展壮大,这也意味着经常会有新的数据科学家和实习生加入团队。我们聘用的每个数据科学家都具有不同的技能,但他们都具备较强的分析背景和在真正的业务案例中运用此背景的能力。例如,团队中大多数人都曾研究计量经济学,这为概率论及统计学提供了坚实的基础。

典型的数据科学家需要处理大量的数据,因此良好的编程技能是必不可少的。然而,我们的新数据科学家的背景往往是各不相同的。编程环境五花八门,因此新的数据科学家的编程语言背景涵盖了R, MatLab, Java, Python, STATA, SPSS, SAS, SQL, Delphi, PHP to C# 和 C++。了解许多不同的编程语言在有些时候确实很有必要,然而我们更希望使用一种编程语言来完成大多数的项目,这样我们可以在项目上更容易的进行合作。由于无人知晓一切,一种首选的编程语言让我们有机会互相学习。

我们公司更倾向于使用Python。在开源社区的大力支持下,Python已经成为了处理数据科学强有力的工具。Python容易使用的语法,强大的数据处理能力和极好的开源统计库,例如Numpy, Pandas, Scikit-learn, Statsmodels等,使我们可以完成各种各样的任务,范围从探索性分析到构建可伸缩的大数据管道和机器学习算法。只有对那些较宽松的统计模型我们有时会将Python和R结合使用,其中Python执行大量的数据处理工作和R进行统计建模。

我的理念是通过实践来学习,因此为了帮助新数据科学家使用Python进行数据科学研究,我们创建了Python数据科学(速成)课(Python Data Science (Crash) Course)。这门课的目标是使我们的新员工(也包括其他部门的同事)以互动的方式和自己的节奏来学习解决实际的业务问题。与此同时,更有经验的数据科学家可以回答任何问题,但也不要小看从StackOverflow或者图书馆的文档中寻找答案的的技能,我们也当然愿意向新数据科学家传授这项技能!

在文章中,我们会按阶段来介绍这个实践课程。

阶段一:学习Python的基础知识

显而易见,第一步是学习Python这个软件,即学习Python语法及基本操作。幸运的是,如果你能处理好代码缩进的话,Python语法就不没那么难了。我在使用Java编程语言时无需考虑注意缩进问题,然而当我之后开始使用Python时在缩进上容易出错。

因此,如何开始学习Python?由于我们更喜欢通过实践来学习的方式,所以我们总是让新员工从Codecademy Python课程开始。Codecademy提供了交互式的Python课程体验,无需担心安装软件会麻烦,可以在浏览器中直接学习使用Python。

Codecademy Python课程用时大约13个小时,完成之后,你应该能够在Python中进行简单的操作。

提示:数据科学家还可以在Codecademy上学习SQL,这门课程也十分重要。

阶段二:在Anaconda环境下本地安装Python

在结束了Codecademy课程后,我们显然会想去开始编写自己的代码,然而因为我们不继续在浏览器中运行Python,需要在我们本地电脑上安装Python。

Python是开源的,并可通过python.org.免费下载。然而官方版本只包含了标准的Python库,标准库中包含文本文件、日期时间和基本算术运算之类的函数。Python标准库不够全面,无法进行多样化的数据科学分析,但开源社区已经创建出了很棒的库来扩展Python的功能,使其能够进行数据科学研究。

为了避免单独下载安装所有的库,我建议使用Anaconda Python发行版。Anaconda实际上是与大量的库结合在一起的Python,因此你不需要手动安装它们。此外,Anaconda附带了一个简单的命令行工具,在必要时安装新的或更新现有的库。

提示:尽管默认情况下Anaconda几乎涵盖了所有很棒的库,但还有一些没有包含在内。你可以通过conda install package_name or pip install package_name语句来安装新的包。例如,我们经常在项目中使用进度条库 tqdm。因此,我们需要先执行pip install tqdm语句来完成Anaconda的新安装。

阶段三:使用PyCharm进行简单的编码

安装了Python之后,我们可以在本地电脑上运行Python代码。打开编辑器写下Python代码,打开命令行并运行新创建的Python文件,路径为python C:\Users\thom\new_file.py。

为了使事情变得简单一些,我更喜欢在Pychanm环境中编写Python代码。PyCharm是一种所谓的集成开发环境,对开发人员编写代码时提供支持。它可以处理常规任务,例如通过提供一个简单的运行脚本按钮来运行程序,此外它还可以通过提供自动完成功能和实时错误检查来提高效率。如果忘记了某处的空格或使用了未被定义的变量名称,PyCharm会发出警告提示。想要使用版本控制系统例如Git来进行项目合作?PyCharm会帮助你。不管怎样,使用Pycham可以在编写Python程序时节省大量的时间,charm名副其实。

阶段四:解决一个模拟的业务问题

定义研究的问题

假设现在经理提出了一个他面对的业务问题,他希望能够预测用户在公司网站上进行首次点击/参与(例如订阅简报)的概率。在给出了一些想法后,我们提出可以基于用户的页面浏览量来预测订阅转换概率,此外,你构建了以下假设:更多的页面浏览量会导致用户首次订阅的概率增大。

为了检验假设是否成立,我们需要从网络分析师处获得两个数据集:

Session数据集 包含所有用户的所有页面浏览量。

1. user_id: 用户标识符

2. session_number: 会话数量(升序排列)

3. session_start_date: 会话的开始日期时间

4. unix_timestamp: 会话的开始unix时间标记

5. campaign_id: 将用户带到网站的活动的ID

6. domain: 用户在会话中访问的(子)域

7. entry: 会话的进入页面

8. referral: 推荐网站,例如:google

9. pageviews: 会话期间的页面访问量

10. transactions: 会话期间的交易量

Engagement数据集 包含所有用户的所有参与活动。

1. user_id:唯一的用户标识符

2. site_id: 产生参与活动的网站ID

3. engagement_unix_timestamp: 发生参与活动的unix时间标记

4. engagement_type: 参与活动的类型,例如订阅简报

5. custom_properties: 参与活动的其他属性

不幸的是,我们有两个单独的数据集,因为它们来自不同的系统。然而,两个数据集可以通过唯一用户标识符user_id来匹配。我已经在GitHub上放置了我用来解决业务问题的最终代码 ,然而我强烈建议你仅在自己解决了这个问题后再去查看代码。此外,你还可以找到创建两个虚构数据集的代码。

代码链接:

https://github/thomhopmans/themarketingtechnologist/tree/master/7_data_science_in_python

使用Pandas进行简单的数据处理

无论我们应用任何统计模型解决问题,都需要预先清洗和处理数据。例如,我们需要为会话数据集中的每个用户找到其首次活动的数据(如果有的话)。这就要求在user_id上加入两个数据集,并删除首次活动后的其他所有活动数据。

Codecademy Python课程已经告诉你如何逐行阅读文本文件。Python非常适合数据管理和预处理,但不适用于数据分析和建模。

Python的Pandas库克服了这个问题。Pandas提供了(数值)表和时间序列的数据结构和操作。因此,Pandas让Python数据科学工作变得更加简单!

使用pd.read_csv()读取数据集

我们的Python代码中的第一步是加载Python中的两个数据集。Pandas提供了一个简单易用的函数来读取.csv文件:read_csv()。本着学习的原则,我们建议您自己找出如何读取这两个数据集。最后,你应该建立两个独立的DataFrames,每个数据集都需要有一个。

小贴士:在这两个文件中,我们都有不同的分隔符。此外,请务必查看read_csv()中的date_parser选项,将UNIX时间标记转换为正常的日期时间格式。

过滤无用数据

任何(大)数据问题中的下一步是减少问题规模的大小。在我们的例子中,有很多与我们问题无关的列,例如会话的媒介/来源。因此,我们在Dataframes上应用索引和选择只保留相关的列,比如user_id(必需加入这两个DataFrames),每个会话和活动的日期(在此之前搜索首次活动和会话)以及页面访问量(假设验证的必要条件)。

另外,我们会筛选出DataFrame中所有非首次的活动。可以通过查找每个user_id的最早日期来完成。具体怎样做呢?使用GroupBy:split-apply-combine逻辑!

Pandas最强大的操作之一是合并,连接和序列化表格。它允许我们执行任何从简单的左连接和合并到复杂的外部连接。因此,可根据用户的唯一标识符结合会话和首次活动的DataFrames。

删除首次活动后的所有会话

在上一步中使用简单的合并,我们为每个会话添加了首次活动的时间标记。通过比较会话时间标记与首次活动时间标记,你应该能够过滤掉无用的数据并缩小问题的规模。

添加因变量y:参与/订阅活动转换

如上所述,我们希望预测页面访问量对转换(即首次活动)概率的影响。因此,我们的因变量y是一个二进制变量,用它表示会话内是否发生了转换。由于我们做了上面的过滤(即在首次活动后删除所有非首次活动和会话),所以这种转换按照定义在每个用户的最近一次会话中进行。同样,使用GroupBy:split-apply-combine逻辑,我们可以创建一个包含观察值的新列,如果它是用户的最后一个会话,观察值将为1,否则为0。

添加自变量X:访问量的累计总和

我们的自变量是页面访问量。但是,我们不能简单地将会话中的页面访问量计算在内,因为早期会话中的页面访问会影响转换概率。因此,我们创建一个新的列,用来计算用户页面访问量的累计总和。这才是我们的自变量X。

使用StatsModels拟合逻辑回归

通过Pandas库我们最终得到了一个包含单个离散X列和单个二进制Y列的小型DataFrame。并用(二元)逻辑回归模型来估计基于一个或多个独立变量的因变量的二元响应概率。StatsModels是Python的统计和计量经济学库,提供了参数估计和统计测试工具。因此,它包含逻辑回归函数也就不足为奇了。那么,如何通过StatsModels来拟合逻辑回归模型呢?请自行百度...

技巧1:不要忘记给逻辑回归添加一个常数。

技巧2:另一个非常棒的拟合统计模型(如逻辑回归)库是scikit-learn。

使用Matplotlib或Seaborn进行可视化

在拟合逻辑回归模型之后,我们可以预测每个累计访问量的转换概率。但是,我们不能仅仅通过交付一些原始数据来将我们最新发现的结果传达给管理层。因此,数据科学家的重要任务之一就是要清晰有效地展示他的成果。在大多数情况下,这意味着提供我们的可视化结果,因为众所周知,一图胜千言...

Python包含几个非常棒的可视化库,其中MatplotLib是最知名的。而Seaborn是建立在MatplotLib上的另一个很棒的库。

MatplotLib的语法大概是以前使用过MatLab的用户所熟知的。但是,我们倾向选择Seaborn,是因为它提供更漂亮的图表而且外观很重要。

我们通过Seaborn得到了模型拟合的可视化结果,如下所示:

我们可以很好地利用这个可视化结果来证明我们的假设是否成立。

验证假设

最后一步是就验证我们提出的假设是否成立。回想一下,我们认为更多的网页访问量导致首次活动的可能性更高。

首先,我们从以前的可视化结果中可以看出,假设是成立的。不然,预测的概率也不会单调递增。尽管如此,我们还是可以从拟合的模型总结中得出同样的结论,如下所示。

Logit Regression Results ==============================================================================Dep. Variable: is_conversion No. Observations: 12420Model: Logit Df Residuals: 12418Method: MLE Df Model: 1Date: Tue, 27 Sep 2016 Pseudo R-squ.: 0.3207Time: 21:44:57 Log-Likelihood: -5057.6converged: True LL-Null: -7445.5 LLR p-value: 0.000==================================================================================== coef std err z P>|z| [95.0% Conf. Int.]------------------------------------------------------------------------------------const -3.8989 0.066 -59.459 0.000 -4.027 -3.770pageviews_cumsum 0.2069 0.004 52.749 0.000 0.199 0.215====================================================================================

我们看到,统计结果中,pagesviews_cumsum系数在显著性水平为1%时显示为正。因此,这足以表明我们的假设成立,加油!此外,您刚刚已经完成了第一个Python数据科学分析工作!:)

是不是感觉很棒?快上手试试吧!

原文链接:

https://themarketingtech...

你不知的Python数据结构 推广视频课程

img

波次茅斯

关注

Python一共有三大数据结构,它是Python进行数据分析的基础,分别是tuple,list以及dict。本文通过这三者的学习,打下数据分析的基础。

数组

数组是一个有序的集合,他用方括号表示。

num就是一个典型的数组。数组不限定其中的数据类型,可以是整数也可以是字符串,或者是混合型。

数组可以直接用特定的函数,函数名和Excel相近。

sum是求和,len则是统计数组中的元素个数。

上述列举的函数是数组内整体元素的应用,如果我只想针对单一的元素呢?比如查找,这里就要用到数组的特性,索引。索引和SQL中的索引差不多,都是用来指示数据所在位置的逻辑指针。数组的索引便是元素所在的序列位置。

注意,索引位置是从0开始算起,这是编程语言的默认特色了。num[0]指数组的第一个元素,num[1]指数组的第二个元素。

我们用len()计算出了数组元素个数是5,那么它最后一个元素的索引是4。若是数组内的元素特别多呢?此时查找数组最后一位的元素会有点麻烦。Python有一个简易的方法,可以用负数表示,意为从最后一个数字计算索引。

这里的num[4]等价于num[-1],num[-2]则指倒数第二个的元素。

再来一个新问题,如何一次性选择多个元素?例如筛选出数组前三个元素。在Python中,用:表示范围。

num[0:3]筛选了前三个元素,方括号左边是闭区间,右边是开区间,所以这里是num[0],num[1]和num[2],并不包含num[3]。这个方法叫做切片。

上述是索引的特殊用法,[0:]表示从第0个索引开始,直到最后一个元素。[:3]表示从第一个元素开始,直到第3个索引。

负数当然也有特殊用法。[-1:]表示从最后一个元素开始,因为它已经是最后一个元素了,所以只返回它本身。[:-1]表示从第一个元素开始到最后一个元素。num[-2:-1]和num[-3:-1]大同小异。

数组的增删查

我们已经了解数组的基本概念,不过仍旧停留在查找,它不涉及数据的变化。工作中,更多需要操纵数组,对数组的元素进行添加,删除,更改。

数组通过insert函数插入,函数的第一个参数表示插入的索引位置,第二个表示插入的值。

另外一种方式是append,直接在数组末尾添加上元素。它在之后讲到迭代和循环时应用较多。

如果要删除特定位置的元素,用pop函数。如果函数没有选择数值,默认删除最后一个元素,如果有,则删除数值对应索引的元素。

更改元素不需要用到函数,直接选取元素重新赋值即可。

到这里,数组增删改查已经讲完,但这只是一维数组,一维数组之上还有多维数组。如果现在有一份数据是关于学生信息,一共有三个学生,要求包含学生的姓名,年龄,和性别,应该怎么用数组表示呢?

有两种思路,一种是用三个一维数组分别表示学生的姓名,年龄和性别。

学生属性被拆分成多个数组,利用索引来表示其信息,这里的索引有些类似SQL的主键,通过索引查找到信息。但是这种方法并不直观,实际应用会比较麻烦,更好的方法是表示成多维数组。

所谓多维数组,是数组内再嵌套数组,图中表示的是一个宽度为3,高度为3的二维数组。此时student[0]返回的是数组而不是单一值。这种方法将学生信息合并在一起,比第一个案例更容易使用。

如果想选择第一个学生的性别,应该怎么办呢?很简单,后面再加一个索引即可。

现在尝试快速创建一个多维数组。

[0]*3将快速生成3个元素值为0的数组,这是一种快捷操作,而[row]*4则将其扩展成二维数据,因为是4,所以是3*4的结构。

这里有一个注意点,当我们想更改多维数组中的某一个元素而不是数组时,这种方式会错误。

按照正常的想法,martix[1][0]将会改变第二个数组中的第一个值为1,但是结果是所有数组的第一个值都变成1。这是因为在matrix = [row] * 4操作中,只是创建3个指向row的引用,可以简单理解成四个数组是一体的。一旦其中一个改变,所有的都会变。

比较稳妥的方式是直接定义多维数组,或者用循环间接定义。多维数组是一个挺重要的概念,它也能直接表示成矩阵,是后续很多算法和分析的基础(不过在pandas中,它是另外一种形式了)。

元组

tuple叫做元组,它和数组非常相似,不过用圆括号表示。但是它最大的特点是不能修改。

当我们想要修改时就会报错。

而选择和数组没有差异。

元组可以作为简化版的数组,因为它不可更改的特性,很多时候可以作为常量使用,防止被篡改。这样会更安全。

字典

字典dict全称dictionary,以键值对key-value的形式存储。所谓键值,就是将key作为索引存储。用大括号表示。

图中的’qinlu’是key,18是value值。key是唯一的,value可以对应各种数据类型。key-value的原理不妨想象成查找字典,拼音是key,对应的文字是value(当然字典的拼音不唯一)。

字典和数组的差异在于,因为字典以key的形式存储和查找,所以它的查询速度非常快,毕竟翻字典的时候你只要知道拼音就能快速定位了。对dict数据结构,10条记录和10万条记录的查找没有区别。

这种查找方式的缺点是占用内存大。数组则相反,查找速度随着元素的增加逐渐下降,这个过程想象成程序在一页页的翻一本没有拼音的字典,直到找到内容。数组的优点是占用的内存空间小。

所以数组和字典的优缺点相反,dict是空间换时间,list是时间换空间,这是编程中一个比较重要的概念。实际中,数据分析师的工作不太涉及工程化,选用数组或者字典没有太严苛的限制。

细心的读者可能已经发现,字典定义时我的输入顺序是qinlu,lulu,qinqin,而打印出来是lulu,qinlu,qinqin,顺序变了。这是因为定义时key的顺序和放在内存的key顺序没有关系,key-value通过hash算法互相确定,甚至不同Python版本的哈希算法也不同。这一点应用中要避免出错。

既然字典通过key-value对匹配查找,那么它自然不能不用数组的数值索引,它只能通过key值。

如果key不存在,会报错。

通过in方法,可以返回True或False,避免报错。

dict和list一样,直接通过赋值更改value。

能不能更改key的名字?不能,key一旦确定,就无法再修改,好比字典定好后,你能修改字的拼音么?

dict中删除key和list一样,通过pop函数。增加key则是直接赋予一个新的键值对。

dict的keys和values两个函数直接输出所有的key值和value值。如果要转换成数组,则再外面嵌套一个list函数。

items函数,将key-value对变成tuple形式,以数组的方式输出。

字典可以通过嵌套应用更复杂的数据格式,和NoSQL与JSON差不多。

基础的数据类型差不多了,更多函数应用大家网上自行查阅文档,这块掌握了,在数据清洗过程中将会非常高效,尤其是读取Excel数据时。当然不要求滚瓜烂熟,因为后面将学习更加强大的Numpy和Pandas

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP