《python 与数据挖掘 》一 2.2 数字数据

本节书摘来自华章出版社《python 与数据挖掘 》一书中的第2章,第2.2节,作者张良均 杨海宏 何子健 杨 征,更多章节内容可以访问“华章计算机”公众号查看。

2.2 数字数据

这节我们将探讨Python最基本的赋值语句和数字的数据类型。

2.2.1 变量与赋值

变量是我们广为熟悉的概念。程序语言中的变量和数学上的变量类似,如果需要对x赋值3,执行下面语句:

x = 3
这样程序将会为变量x申请地址并存储它。“=”的这个操作称为赋值。如果再执行:
x*2

6
那么结果返回32的值,但注意运行后x的值仍为3,如果希望保存6的值,可写成x=x2或x=2。不过,Python的变量是不可变对象,读者可能会感到疑惑,x=2这个语句就已经让x的值发生了改变,为什么还说变量是不可变的呢?实际上,如果变量的值发生改变,Python会自动创建另一个对象申请另一块的内存,并改变变量的对象引用,如图2-1所示。

这样做的优点是减少了重复的值对内存空间的占用,而缺点则是每次修改变量都需要重新开辟内存单元,给执行效率带来一定影响。下面的代码清单2-1给出了一个例子。
代码清单2-1 变量与赋值

print '''变量与赋值'''
x=3
print x
# result: 3
print id(x)  # 查看x的内存地址,每次运行都会发生变化
#result: 39011144
x*=2
print x
#result: 6
print id(x)  # 再次查看x的内存地址,每次运行都会发生变化,但内存必然会变化
#result: 39011108

*代码详见:示例程序/code/2-2.py

2.2.2 数字数据类型

数字的基本数据类型可分为整数、浮点数、布尔值。创建变量时,Python不需要声明数据类型,Python能够自动识别数据类型。x=3的数据类型是整数,而x=3.3的数据类型是浮点数,函数type(x)可以查看数据的数据类型。布尔值只有True和False两种值,支持and、not、or三种运算,这在2.1.4节中已经介绍到。
和数学运算不同的地方是,Python的整数结果仍然是整数,如果操作符两端其中一个操作数是浮点数,那么运算结果是浮点数。如:
1+2=>整数3
1.0+2=>浮点数3.0
整数运算的结果永远是精确的,而浮点数运算的结果不一定是精确的。计算机的内存是有限的,无法存储无限位的小数。Python的浮点数实际上是双精度浮点数,在C中称为double类型,具体存储方式读者可以参考维基百科。举一个丢失精度的例子,如果在Shell输入:

1/109*109
0

结果返回0,这是因为1除以10的9次方的数太小,计算机只存储到前面的0,除法过后返回了结果0,然后0乘以任何数都返回0,最后导致精度的丢失。所以在数值计算算法的设计上,常常要考虑精度丢失的问题,有时候一个好的办法是改变运算顺序:

1*109/109
1

时间: 2024-07-30 00:57:42

《python 与数据挖掘 》一 2.2 数字数据的相关文章

《python 与数据挖掘 》 一 导读

前 言 为什么要写本书? Python是什么? Python是一种带有动态语义的.解释性的.面向对象的高级编程语言.其高级内置数据结构,结合动态类型和动态绑定,使其对于敏捷软件开发非常具有吸引力.同时,Python作为脚本型(胶水)语言连接现有的组件也十分高效.Python语法简洁,可读性强,从而能降低程序的维护成本.不仅如此,Python支持模块和包,鼓励程序模块化和代码重用. Python语言的解释性使其语法更接近人类的表达和思维过程,开发程序的效率极高.习惯使用Python者,总习惯在介绍

《python 与数据挖掘 》一 2.4 数据结构

本节书摘来自华章出版社<python 与数据挖掘 >一书中的第2章,第2.4节,作者张良均 杨海宏 何子健 杨 征,更多章节内容可以访问"华章计算机"公众号查看. 2.4 数据结构 Python中的绝大部分数据结构可以被最终分解为三种类型:标量(Scaler),序列(Sequence),映射(Mapping).这表明了数据存储时所需的基本单位,其重要性如同欧式几何公理之于欧式空间.在第2.2节中,我们已经详细叙述了"标量",如整数.浮点数等数据类型.这里

《python 与数据挖掘 》一 第2章 Python基础入门

本节书摘来自华章出版社<python 与数据挖掘 >一书中的第1章,第2.1节,作者张良均 杨海宏 何子健 杨 征,更多章节内容可以访问"华章计算机"公众号查看. 第2章 Python基础入门 本章是Python的基础章节,读者可以在这章中学习到丰富的Python基础知识.首先我们会从操作符和最简单的数字数据入手,然后就是流程控制,到这里读者能够对Python程序结构有一个清晰的认识.接着是较复杂的数据结构,主要涉及Python最常用的五大内建数据类型:列表,字符串,元组,

《python 与数据挖掘 》一 3.3 可变对象与不可变对象

本节书摘来自华章出版社<python 与数据挖掘 >一书中的第3章,第3.3节,作者张良均 杨海宏 何子健 杨 征,更多章节内容可以访问"华章计算机"公众号查看. 3.3 可变对象与不可变对象 Python的所有对象可分为可变对象和不可变对象(见表3-1).所谓可变对象是指,对象的内容可变,而不可变对象是指对象内容不可变. 我们在前面已经介绍过数值类型是不可变对象,当程序尝试改变数据的值时,程序会重新生成新的数据,而不是改变原来的数据. 之所以本书要将这部分内容放到函数这一

《python 与数据挖掘 》一第1章 数据挖掘概述 1.1 数据挖掘简介

本节书摘来自华章出版社<python 与数据挖掘 >一书中的第1章,第1.1节,作者张良均 杨海宏 何子健 杨 征,更多章节内容可以访问"华章计算机"公众号查看. 第1章 数据挖掘概述 广义的数据挖掘是指针对收集的大规模数据,应用整套科学工具和挖掘技术(如数据.计算.可视化.分析.统计.实验.问题定义.建模与验证等),从数据之中发现隐含的.对决策有参考意义的信息.价值和趋势.因此,数据挖掘是一个横跨多学科的计算机科学分支.强调它隶属计算机科学范畴,是希望读者认识到这个领域的

《python 与数据挖掘 》一 2.5 文件的读写

本节书摘来自华章出版社<python 与数据挖掘 >一书中的第2章,第2.5节,作者张良均 杨海宏 何子健 杨 征,更多章节内容可以访问"华章计算机"公众号查看. 2.5 文件的读写 文件访问是一门语言重要的一环,适当地进行文本读写能够保存一次程序运行下来的结果.在数据挖掘的工作中,数据量很大,整个挖掘程序可以分为几部分,我们应该把每一部分运行的结果都保存下来,这样如果后面的程序出现错误,我们也不必再从头开始.而数据挖掘中最普遍的是对txt.csv等文件进行读写处理. 2.

《python 与数据挖掘 》一1.3 Python开发环境的搭建

本节书摘来自华章出版社<python 与数据挖掘 >一书中的第1章,第1.3节,作者张良均 杨海宏 何子健 杨 征,更多章节内容可以访问"华章计算机"公众号查看. 1.3 Python开发环境的搭建 所谓编程语言,意指"与计算机交流时使用的语言".它是一种被标准化的交流技 巧,用于连接程序员的思维和计算机的操作.学习编程语言的第一关,就是安装和环境配置.我们必须与计算机约定如何理解代码.指令和语法,才能够顺利地与计算机交流,赋予它复杂的功能.Python

《python 与数据挖掘 》一 2.3 流程控制

本节书摘来自华章出版社<python 与数据挖掘 >一书中的第2章,第2.3节,作者张良均 杨海宏 何子健 杨 征,更多章节内容可以访问"华章计算机"公众号查看. 2.3 流程控制 流程控制是一门程序语言的基本,掌握Python流程控制语句就已经能够实现很多算法了.本节主要介绍Python的条件分支结构if语句和两种主要循环结构while语句和for语句,并在最后详细讲解Python函数的用法.如果读者有一定的编程基础,对条件分支.循环和函数这3种结构比较熟悉,那么本节的内

《python 与数据挖掘 》一 2.6 上机实验

本节书摘来自华章出版社<python 与数据挖掘 >一书中的第2章,第2.6节,作者张良均 杨海宏 何子健 杨 征,更多章节内容可以访问"华章计算机"公众号查看. 2.6 上机实验 1.实验目的掌握Python流程控制语句,合理运用循环进行程序设计.掌握Python数据结构,并能熟练运用进行程序设计.掌握Python的文件读写,并能编写读取数据集的程序.2.实验内容实验一冒泡排序是一个经典的排序算法,任意给定一个Python的列表SList ,要求使用Python实现冒泡排