热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python演示_python数据分析与展示(一)

NumPy库学习一.数据的维度数据的维度是数据的组织形式。一维数据:由对等关系的有序或无序数据构成,采用线性方式组织。例如列表和数组,这两

NumPy库学习

一.数据的维度

数据的维度是数据的组织形式。

一维数据:由对等关系的有序或无序数据构成,采用线性方式组织。例如列表和数组,这两者的区别是列表的数据类型可以不同,数组的数据类型必须相同。

二维数据:由多个一维数据构成,是一维数据的组合形式。例如表格是典型的二位数据。

多维数据:由一维或二维数据在新维度上扩展形成

高维数据:仅利用最基本的二元关系展示数据间的复杂结构。例如json、yaml格式的数据。

二.数据维度的python表示

#一维数据:列表和集合类型

[1,2,3] #有序

{1,2,3} #无序

#二维数据:列表类型

[[1,2,3],

[4,5,6]]#多维数据

[[[1,2,3],

[4,5,6]],

[7,8,9],

[4,4,4]]#高维数据:字典类型或数据表示格式,例如JSON、XML、YAML

dict={'firstName':'Tian','lastName':'Song',

}

三.NumPy的多维数组对象:ndarray

1.NumPy是一个开源的python科学计算基础库,包含:

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

广播功能函数

整合C/C++/Fortran代码的工具

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

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

2.NumPy的引用:

importnumpy as np#这是一种约定俗成的引用名称,建议使用上述约定的别名

3.python已经有列表类型,为什么需要一个数组对象?

数组对象可以去除元素运算所需的循环,使一维向量更像单个数据

设置专门的数组对象,经过优化,可以提升这类应用的运算速度

数组对象采用相同的数据类型,有助于节省运算和存储空间

例如以下事例:

#计算A^2+B^2,其中A和B是一维数组

importnumpy as np#使用列表的方式

defpySum():

a=[0,1,2,3,4]

b=[5,6,7,8,9]

c=[]for i inrange(len(a)):

c.append(a[i]**2+b[i]**2)returncprint("pySum-->",pySum())#使用数组的方式

defnpSum():

a=np.array([0,1,2,3,4])

b=np.array([5,6,7,8,9])

c=a**2+b**2

returncprint("npSum-->",npSum())#运行结果

'''pySum--> [25, 37, 53, 73, 97]

npSum--> [25 37 53 73 97]'''

#可见如果采用数组的方式,numy把一维向量当作单个数据对待,这样更有利于进行科学计算

4.ndarray对象的构成:

实际的数组

描述这些数据的元数据(数据维度、数据类型等)

ndarray数组一般要求所有元素类型相同(同质),数组下标从0开始

ndarry实例:

importnumpy as np#ndarray在程序中的别名是:array#np.array()生成一个ndarray数组

a=np.array([[0,1,2,3,4],

[5,6,7,8,9]])print(a) #np.array()输出成[]形式,元素有空格分割

'''[[0 1 2 3 4]

[5 6 7 8 9]]'''

#轴(axis):保存数据的维度;秩(rank):轴的数量

5.ndarray对象的属性

.ndim:秩,即轴的数量或维度的数量

.shape:ndarray对象的尺度,对于矩阵的n行m列

.size:ndarray对象元素的个数,相当于.shape中的n*m的值

.dtype:ndarray对象的元素类型

.itemsize:ndarray对象中每个元素的大小,以字节为单位

实例:

importnumpy as np

a=np.array([[1,2,3,4],

[5,6,7,8]])print("维度:",a.ndim)print("尺度:",a.shape)print("元素个数:",a.size)print("元素的类型:",a.dtype)print("元素的大小:",a.itemsize)'''维度: 2

尺度: (2, 4)

元素个数: 8

元素的类型: int32

元素的大小: 4'''

6.ndarray的元素类型

ndarrya为什么要支持这么多种元素类型?

科学计算涉及数据较多,对存储和性能都有较高要求

对元素类型精确定义,有助于NumPy合理使用存储空间并优化性能

对元素类型精确定义,有助于程序员对程序规模有合理评估

7.非同质的ndarray对象

非同质的ndarray元素为对象类型,无法有效发挥NumPy优势,尽量避免使用

importnumpy as np

a=np.array([[1,2,3,4],

[5,6,7]])print("尺度:",a.shape)print("元素个数:",a.size)print("元素的类型:",a.dtype)print("元素的大小:",a.itemsize)'''尺度: (2,)

元素个数: 2

元素的类型: object

元素的大小: 8'''

#此时每个一维向量被当成一个对象(元素)

8.ndarray数组的创建

(1)从python中的列表、元组等类型创建ndarray数组

x=np.array(list/tuple,dtype=np.float32)#当np.array()不指定dtype时,NumPy将根据情况关联一个dtype类型

例子:

(2)使用NumPy中函数创建ndarray数组,如:arrange,ones,zeros

#######

注:使用np.arange()方法创建的数组默认是int32类型,另外几种方法默认是float类型

例子:

例子:

例子:

9.ndarray数组的变换

(1)ndarray数组的维度变换

例子:

(2)ndarray数组的类型变换

new_a = a.astype(new_type)

#astype()方法一定会创建新的数组()原始数组的一个拷贝,即使两个类型一致

例子:

(3)ndarray数组向列表的转换

ls=a.tolist()

例子:

10.ndarray数组的操作

(1)ndarray数组的索引和切片

一维数组的索引和切片:与python的列表类似

多维数组的索引:

多维数组的切片:

(2)ndarray数组的运算

数组与标量之间的运算作用于数组的每一个元素

(3)NumPy一元函数

例子:

(4)NumPy二元函数

例子:



推荐阅读
  • Day2列表、字典、集合操作详解
    本文详细介绍了列表、字典、集合的操作方法,包括定义列表、访问列表元素、字符串操作、字典操作、集合操作、文件操作、字符编码与转码等内容。内容详实,适合初学者参考。 ... [详细]
  • 本文介绍了Python对Excel文件的读取方法,包括模块的安装和使用。通过安装xlrd、xlwt、xlutils、pyExcelerator等模块,可以实现对Excel文件的读取和处理。具体的读取方法包括打开excel文件、抓取所有sheet的名称、定位到指定的表单等。本文提供了两种定位表单的方式,并给出了相应的代码示例。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了如何使用python从列表中删除所有的零,并将结果以列表形式输出,同时提供了示例格式。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 本文讨论了Kotlin中扩展函数的一些惯用用法以及其合理性。作者认为在某些情况下,定义扩展函数没有意义,但官方的编码约定支持这种方式。文章还介绍了在类之外定义扩展函数的具体用法,并讨论了避免使用扩展函数的边缘情况。作者提出了对于扩展函数的合理性的质疑,并给出了自己的反驳。最后,文章强调了在编写Kotlin代码时可以自由地使用扩展函数的重要性。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
author-avatar
有情人都在外头_943
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有