Logo

郎哥编程

从超市的购物小票来认识数据

2019-09-29 919

在讲数据之前,我先给大家讲个关于啤酒和尿布的故事。

01.png

这个故事的真假,我们暂不讨论。说有一个大型超市,每过一段时间,他们会对消费者购买的商品进行分析,找出商品与商品间的关联性。

商品与商品间的关联性就是一个消费者购买了一件商品,他会购买另一件商品的概率。例如:一个消费者购买了啤酒,他会购买尿布的概率有多大,是20%还是5%等,这个概率就是商品间的关联性。

02.png

举个例子,假如牛奶和面包的关联性是80%,也就是说当一个消费者购买了牛奶后,这个消费者会有80%的的概率购买面包。如果这个数据是真实的,我这里用到了数据这个词。

03.png

在“牛奶和面包的关联性是80%”这句话中,“80%”是数值,“牛奶和面包的关联性”是数值的语义,是对数值的解释,数值和数据的语义是不能分隔的。单纯的“80%”对我们来说没有任何意义,它仅是一个百分比。

04.png

如果上面的数据是真实的,超市的店员就有理由把牛奶和面包的货柜尽量放置的近一些,方便购买牛奶的消费者能很快买到面包,对另外20%的消费者也起到促销面包的作用。

05.png

理解了商品间的关联性,我们再回到前面大型超市的故事,这个大型超市对用户购买商品的数据进行分析后,得出了这样一条结论:

06.png

为什么会得出这样的结论呢?数据是真实的数据,数据不会说谎。经过跟踪调查发现,一些年轻的爸爸常到超市去购买婴儿尿布,有30%至40%的新爸爸,会顺便买点啤酒犒劳自己。

根据得出的数据,这个超市对啤酒和尿布进行了捆绑销售,不出意料,销售量双双增加。

07.png

我们暂且不管这个案例的真实性,我们先从上面的案例中来看看有哪些数据是超市可以得到的?

我们在超市购物结账后,超市的结账员会给我们一个小票,这个小票记录了购买的商品和价格信息。这些信息主要包括商品名称、商品单价、商品数量、商品金额、购买日期、所有商品的总金额。

08.png

假设一个消费者从超市购买1箱牛奶和6个面包并结账后,超市可以从该消费者获取下表所列的商品数据:

09.png

从上面表格所列的数据可以看出,该消费者在2019.9.12号购买了2箱牛奶和6个面包。牛奶的单价是29.9元1箱,该消费者买了2箱,总共花费59.8元;面包的单价是3.5元1个,该消费者买了6个,总共花费21元,总计消费80.8元。

在上面的表格中,数值29.9、59.8、3.5、1、6、21、80.8,如果离开了表格对这些数值的描述,我们将不清楚这些数值的作用是什么,以及这些数值表示的含义。在我们看来,它们就是一些纯的数值,没有任何意义,因此这些数值如果没有语义解释,只能称为数值,不能称为数据。

10.png

例如,数值29.9是1箱牛奶的单价,这是我们从表格中对数值29.9的描述得出的,另外一个数值59.8是2箱牛奶的总额,也是我们从表格对数值59.8的描述得出的。

通过使用表格结构以及文字对数值的描述,我们获取了这些数值带给我们的信息。也可以这样说,带给我们信息的、能够让我们理解的数值、文字、图像、视频、符号等内容就是数据。

11.png

因此,加上语义描述的数值才能称为数据。例如:1箱牛奶29.9元、商品总额80.8元。在一些约定情况下,数值不需要特定的描述信息,也能让人们理解数值的含义。

例如:我们可以约定下面的一组数值用于表示A超市今年前6个月的营业额,数值按1至6月份排列,单位为万元:

12.png

上面的一列数值在约定数值语义的情况下,我们可以理解这些数值的含义:

13.png

我们在编写程序处理数值时,也会约定要处理数值的语义。例如在计算长方形面积的程序中,会声明两个变量width和height,这两个变量存储了用户输入的长方形的宽度和高度两个数值。

在程序中,我们通过变量和数值的关系约定了用户输入的宽度和高度两个数值的语义。

14.png

前面我们了解了数值和数据的关系,也了解了在程序中如何约定一个数值的语义。那么,什么是数据呢?

可以这样来描述数据,凡是能够被计算机或人们理解和使用的数值、文字、图片、音频、视频、符号等内容统称为数据。其中文字、图片、音频、视频、符号等内容本身就带有语义信息,也容易被被计算机或人们理解和使用,自然就是数据。

15.png

当我们编写程序要处理用户输入的数据时,需要先把数据存储到计算机内存中,也就是使用input函数获取用户输入的数据并赋值给变量。

我们知道,变量的内容是存储在计算机存储器中的,存储器的存储空间是有大小限制的,它不能无限制存储数据。如下图整数类型的变量num1占内存储器的4个连续存储单元。

16.png

为了给需要存储的数据分配存储空间,需要对最基础的数据进行存储空间的限定。

最基础的数据就是不可再分割的数据,例如:39.7(一个小数)、39(一个整数)、a(一个字符)、True(一个真值)。这些数据是不可再分割的数据,称为基础数据。其它数据都是由这些基础数据组合而成。

Python对基础数据进行了分类,基础数据有浮点(小数)、整型(整数)、布尔类型(真假值)、复数、字符串。关于基础数据,在下一节课程会详细讲述。


课程小结

首先总结一下数据和数值的区别:数值是单纯的数,如自然数、整数、复数等。当数值加上语义时,数值就成了数据。例如:单纯的数值29.9,对我们来说它就是一个数;如果我们给29.9加上语义描述,如牛奶1箱29.9元,这时29.9对我们来说就是数据。

另外,数据不仅仅包括带语义描述的数值。还包括文字、图片、音频、视频、符号等内容,这些内容本身就带有语义描述,可以让我们理解和使用,因此这些内容都是数据。
最后,可以这样来描述数据。凡是能够被人或计算机理解和使用的数值、文字、图片、音频、视频、符号等内容都称为数据。

课堂练习
(1)请简单说一说数值和数据的区别?

(2)超市要对销售商品的关联性进行分析,超市至少要需要哪些数据来支持对商品关联性进行分析?

代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论