数据分析之Numpy库入门

1.列表与数组

在python的基础语言部分,我们并没有介绍数组类型,但是像C、Java等语言都是有数组类型的,那python中的列表和数组有何区别呢?

一维数据:都表示一组数据的有序结构

区别:

列表:数据类型可以不同,如:【3.1413,‘pi‘,3.1404,[3.1402,2.34],‘3.2376‘】

数组:数据类型相同 。如【3.14,34.34,3433.3,343.23】

二维数据:二维数据由多个一维数据构成,是一维数据的集合形式!表格是典型的二维数据!

注意:表格的表头,可以是二维数据的一部分,也可以作为二维数据以外的一部分,这取决于用户对于二维数据的定义和使用!

多维数据:多维数据是在一维数据或者二维数据的基础上拓展形成的!

注意:上面一个是2016年的排名表格,还有一个是2017年的一个排名表格,从这两个表格的跨度来看,这里增加了一个时间维度,从而构成一个多维数据!如果随着时间的发展,那么在时间维度上,数据就会继续累积下去!

除了一维、二维、多维数据之外,还有一种多维数据!高维数据与一维、二维、多维数据不同,高维数据仅使用最基本的二元关系展示数据间的复杂结构

如下所示:这就是一个高纬数据,这里面没有数据的规整的组织方式,但是却有数据之间的包含关系、数据之间的并列关系,以及数据之间的属性关系等形成的一个数据的组织方式,这里面都是键值对的单元,高维数据就是有键值对将数据组织起来。

2.数据维度的python表示

注意:对于一维数据我们用列表和集合表示,列表是有序的,而集合是无序的。对于python中的二维或者多维数据,我们用列表表示,而列表的元素还可以是列表,这就是一种多维列表,用多维列表来对应多维元素!

对于高维数据,我们使用字典或者数据表示的格式来表示;字典类型也是由键值对构成的一个数据类型,它与高维数据的表达方式基本上是一致的!

我们知道现在公认的数据表达格式主要有3种: JSON,XML,YAML格式,这样的格式可以用来组织数据,是他们之间形成数据的维度和关系。

3.NumPy的数组对象: ndarray

下面我们介绍一个numpy库以及numpy中的ndarray数组类型!

NumPy是一个开源的Python科学计算基础库。它也是整个python目前科学计算和数据分析的最基础的第三方库!NumPy提供了很多功能,主要包含以下一些方面:

1.一个强大的N维数组对象ndarray

2.一组广播功能函数,用来在数组之间进行计算

3.整合C/C++/Fortran等代码的工具

4.线性代数、傅里叶变换、随机数生成等功能!

NumPy是SciPy,Pandas等数据处理或科学计算库的基础。

为了更好的进行科学计算,我们首先要理解NumPy的构成原理,以及其中最关键的数据对象ndarray!

1.NumPy的引用:import numpy as np #注意:这里的np是引入模块numpy的别名,尽管别名可以省略或更改,建议使用上述约定的别名。【如果我们不使用别名,而是直接使用numpy,这样每次调用函数的时候都得是numpy.的方式,代码较长,如果我们使用的是其它别名,那么其它程序员未必熟悉,所以这里我们建议使用的别名为np】

2.python中的数据对象ndarray![有些学员可能会有疑问,在python中我们已经有了列表类型,而列表类型可以表示一维数据、二维数据、多维数据,那么我们为什么需要一个额外的数组类型呢?这里我们给大家举个例子,如下所示:]

如果用传统的python语法,我们来定义:

在上述的运算方式中,我们还是将我们的关注点放在一个一个元素之间的运算上,这并不是一种科学计算的思想方式!,而NumPy使用了另外一种思路,如下所示:

这时在NumPy进行运算的时候没有使用循环!我们的基本思想是将一维数组A和一维数组B当做两个数据,这两个数据在他们维度相同的时候,他们可以直接进行运算!程序帮我们把这两个数据中的每一个元素进行了运算,而编程的程序员只需要考虑A和B只是一个数据就可以啦!这是NumPy中N维数组对象所使用的一个基本原理!

所以对N维数组对象ndarray的一些说明如下:

1.数组对象可以去掉元素间运算所需要的循环,使一维数据更向单个数据,也使得我们程序员编写代码处理数据的程序变得十分简单!

2.通过设置专门的数组对象,经过优化,可以提升这类应用的运算速度,这里同学们可能还不知道,NumPy的底层实现是用C来完成的,也就是说在进行数组运算的时候,底层的C语言会提供非常高效和快速的运算,这样会使得在进行大规模运算的时候,运算时间会比较少!

例如:观测一个现象,每一次它的值都可能是一个整数或者浮点数,他们都是统一的!因此,数组对象采用相同的数据类型,有助于节省运算和存储空间,因为对程序来讲,当它的类型是确定的,那我可能就知道它使用的内存空间是多少,这样在内存分配和存储空间的使用上,就可以做预判,使得空间的使用很有效,所以呢,一方面是在编程上,NumPy使得程序员可以在批量数据处理时得到了简化,一方面在运算性能上,NumPy可以由底层的C语言甚至更底层的运算方法来提高他的运算速度。因此Numpy成为了Python中支持科学计算和数据处理的最基础的库。

我们来进一步介绍ndarray这个数据类型!

数组的下标是从0开始,这点是和列表一致的!我们来看一下ndarray实例,如下所示:(这里需要注意的是,在数据处理这里,我们使用的解释器是IPython,因此我么要熟悉IPython的交互时提示符,如由in、out、[]等组成,如下所示:

这里面展示了用户输入的和程序输出的结果!对于ndarray这里有两个基本的概念:

在轴上每个维度的数据存储在其中,秩表示轴的数量,也就是这个数组类型有多少个维度!这两个基本概念是描述ndarray类型的基本向量和方式!ndarray对象一共有5个基本的运算属性:

如下为ndarray实例:

注意:上面的返回值dtype(‘int32‘),其中的int32在基本的python数据类型中是不存在的,在ndarray中还有很多这样的类型,如下所示:

以上整数类型是有正负之分的,还有一部分整数是没有正负之分的,我们称之为无符号整数,如下所示:

ndarray还支持复数类型,如下所示:

我们知道在python基础数据类型部分,python只支持一种整形,一种浮点型,和一种复数类型,那为什么这里的ndarray支持这么多的类型呢?

我们说ndarray对象都是相同的,也就是一种同质的数组类型,事实上ndarray也可以包含非同质的元素。比如我们生成一个数组,如下所示:

注意:上面的x.shape只返回了行数,并没有返回列数,因为是非同质的,所以列数不固定了,而且x.dtype返回的是o,也就是说是对象类型。

 

 

时间: 2024-10-25 11:07:03

数据分析之Numpy库入门的相关文章

数据分析与展示——NumPy库入门

这是我学习北京理工大学嵩天老师的<Python数据分析与展示>课程的笔记.嵩老师的课程重点突出.层次分明,在这里特别感谢嵩老师的精彩讲解. NumPy库入门 数据的维度 维度是一组数据的组织形式.数据维度就是在数据之间形成特定关系表达多种含义的一个概念. 一维数据: 一维数据由对等关系的有序或无序数据构成,采用线性方式组织.对应列表.数组和集合等概念. 列表和数组:一组数据的有序结构. 区别: 列表:数据类型可以不同 数组:数据类型相同 二维数据: 二维数据由多个一维数据构成,是一维数据的组合

NumPy库入门

ndarray数组的元素类型 ndarray数组的创建 ndarray数组的操作 ndarray数组的运算

数据分析与展示——Matplotlib库入门

Matplotlib库入门 Matplotlib库介绍 Matliotlib库是Python优秀的数据可视化第三方库. Matliotlib库的效果见:http://matplotlib.org/gallery.html Matplotlib库由各种可视化类构成,内部结构复杂,受Matlab启发. matplotlib.pyplot是绘制各类可视化图形的命令字库,相当于快捷方式.导入方式如下: import matplotlib.pyplot as plt 范例:使用Matplotlib库绘图

python数据分析实战-第3章-numpy库

第3章 NumPy库 32 3.1 NumPy简史 32 3.2 NumPy安装 32 3.3 ndarray:NumPy库的心脏 33 1 import numpy as np 1 a = np.array([1, 2, 3]) 1 a array([1, 2, 3]) 1 type(a), a.dtype, a.ndim, a.size, a.shape, a.itemsize (numpy.ndarray, dtype('int64'), 1, 3, (3,), 8) 1 b = np.a

Panda和numpy库和matplotlib库的安装

好久没有用python了 论文决定使用python 朴素贝叶斯和逻辑斯蒂 手生....连cmd命令都快忘记了 所以来重新复习一遍:cd C: 也就是在cmd中,可以敲打cd加上盘符的冒号就可以切换, 其次就是,使用pip install 下载包,但是要先进入Python27/Scpripts 才可以 而我是忘记了..直接在Python27里面用了...不过也没有提示我如何 只是说我的pip要更新  由于直接给出了一个命令提示 ' python -m pip install --upgrade p

NumPy简单入门教程

# NumPy简单入门教程 NumPy是Python中的一个运算速度非常快的一个数学库,它非常重视数组.它允许你在Python中进行向量和矩阵计算,并且由于许多底层函数实际上是用C编写的,因此你可以体验在原生Python中永远无法体验到的速度. NumPy绝对是科学Python成功的关键之一,如果你想要进入Python中的数据科学和/或机器学习,你就要必须学习它.在我看来,NumPy的API设计得很好,所以我们要开始使用它并不困难. 这是一系列关于科学Python的文章中的第二篇,别忘了看看其他

LEADTOOLS Android库入门使用教程

一.搭建Android开发环境 在使用LEADTOOLS Android库和demo之前,需要根据以下步骤搭建Android开发环境: 1.安装Java Development Kit (JDK) 1.6 ,该开发包中包含 Java Runtimes (JRE) 和库. 2.安装Eclipse. 3.安装Android SDK. 4.在web页面点击USE AN EXISTING IDE,然后点击Download the SDK Tools for Windows. 5.启动Android SD

Numpy库进阶教程(二)

第一篇在这里:Numpy库进阶教程(一)求解线性方程组 求解特征值和特征向量 关于特征值和特征向量的介绍,可以点击这里 首先创建一个矩阵 In [1]: A=mat("3 -2;1 0") In [2]: A Out[2]: matrix([[ 3, -2], [ 1, 0]]) 在numpy.linalg模块中,eigvals函数可以计算矩阵的特征值,而eig函数可以返回一个包含特征值和对应特征向量的元组. 使用eigvals函数求解特征值 In [3]: linalg.eigval

Splunk运维智能与大数据分析视频教程第一部分入门系列即将发布!

Splunk运维智能与大数据分析视频教程第一部分入门系列即将在51CTO学院发布! Splunk 是企业级的运维智能与数据分析平台,它以搜索引擎的方式来处理海量的机器数据,结合其荣获专利的SPL搜索语言和可视化技术,IT人员可以快速上手分析各种类型的日志数据. Splunk入门系列课程包括: 1)初识Splunk2)在Linux平台安装Splunk3)在Windows平台安装Splunk4)安装后配置5)Splunk目录结构6)Splunk常用CLI命令7)实战-导入数据前的准备8)实战-导入并