NumpyPandas的区别和联系
目录
一、Numpy
二、Pandas
一、Numpy
numpy是以矩阵为基础的数学计算模块,提供高性能的矩阵运算,数组结构为ndarray。
首先需要明确数组与列表的区别:数组是一种特殊变量,虽与列表相似,但列表可以存储任意类型的数据,数组只能存储一种类型的数据,同时,数组提供了许多方便统计计算的功能(如平均值mean、标准差std等)。
那么numpy有哪些功能呢?
首先在使用前要导入该模块(导入前要安装,方法自行搜索吧(*^-^*)),代码如下:
import numpy as np
1. 通过原有列表转化为数组
2.直接生成数组
- 生成一维数组
上图中由于生成一维数组时,没有给参数10 定义数据类型,所以数组元素的类型默认为float64。那定义数据类型为整型时会是什么结果呢?
- 生成多维数组
zeros返回来一个给定形状和类型的用0填充的数组,同理,ones返回来一个给定形状和类型的用1填充的数组。但更多情况下我们想指定某个值,这时用np.full(shape, val)生成全为val的值,如下:
- 随机数取值
我们知道random库中可以通过random.randint(5,10)来随机生成一个5-10的数,如下:
在numpy中也有一个类似的加强版的功能。
- 范围取值
访问数组中的元素
- 基本数学运算
numpy在做运算时,是对数组中每个元素都进行运算。
常用的运算符号及等价函数总结如下:
- 数组变形
数组变形时,数组总大小保持不变,如上图中我们定义了一个两行五列的数组,总大小为2*5=10,经变形后得到一行十列的数组,总大小仍为10,但我们无法变成3*4或6*9等类型。
- 数组拼接
- 数组排序
二、Pandas
pandas是基于numpy数组构建的,但二者最大的不同是pandas是专门为处理表格和混杂数据设计的,比较契合统计分析中的表结构,而numpy更适合处理统一的数值数组数据。pandas数组结构有一维Series和二维DataFrame。
使用前同样需要先导入该模块,代码如下:
import pandas as pd
1. Series
Series是一种类似于一维数组的对象,它由一组数据以及一组与之相关的数据标签(索引index)组成。
Series的字符串表现形式为:索引在左边,值在右边。如果不为数据指定索引,则会默认创建一个0到n-1的整数型索引。
- 通过原有字典转化为数组
- 访问元素
与numpy相比,除了根据位置获取值外,还可以根据索引获取。
- 向量化运算
上图运行结果可以看到出现了缺失值NaN(not a number),这是因为索引值b、c、d、e、f、g只出现在一个一维数组中。在数据分析过程中,我们通常不希望缺失值出现,那么如何解决呢?
一般常用的有两种方法:
2. DataFrame
DataFrame是一个表格型的数据结构,其中的数据是以一个或多个二维块存放的,而不是列表、字典或别的一维数据结构。它含有一组有序的列,每列可以是不同的数据类型,它既有行索引,也有列索引。
- 将原有字典转化为DataFrame
- 访问元素
- 条件筛选
- 排序
- 应用函数
其他常用函数举例如下:
# 取前五行
table.head()# 取后五行
table.tail()# 查看行列数
table.shape()# 查看每一列的统计信息
table.describe()......
以上就是numpy与pandas的基础内容,如有遗漏或错误,欢迎评论区指正~~
NumpyPandas的区别和联系相关推荐
- RPC 笔记(01)— RPC概念、调用流程、RPC 与 Restful API 区别
1. 基本概念 PRC 远程过程调用 Remote Procedure Call,其就是一个节点请求另外一个节点提供的服务.当两个物理分离的子系统需要建立逻辑上的关联时,RPC 是牵线搭桥的常见技术手 ...
- C++ 笔记(28)— C++ 中 NULL和 nullptr 的区别
最近看公司代码的时候发现在判断指针是否为空的时候,有的时候用的是 NULL, 有的时候用的是 nullptr 感觉很奇怪,好奇心驱使我查了下两者的区别,发现还是有很多细节需要学习的. 1. NULL ...
- gcc 和 g++ 的联系和区别,使用 gcc 编译 c++
GCC 编译器已经为我们提供了调用它的接口,对于 C 语言或者 C++ 程序,可以通过执行 gcc 或者 g++ 指令来调用 GCC 编译器. 实际使用中我们更习惯使用 gcc 指令编译 C 语言程序 ...
- Python2 与 Python3 区别
Python2.x 与 Python3.x 区别 1. print 函数 Python2 中 print 是语句(statement),Python3 中 print 则变成了函数.在 Python3 ...
- Docker 入门系列(1)- 初识容器,镜像、容器、仓库的区别
Docker 简介 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发 ...
- HTTP 协议入门 — (TCP/IP协议族、通信传输流、URI 与 URL 的区别、Cookie 状态管理、HTTP 支持的方法、状态码类别、HTTP 首部字段)
TCP/IP协议族 在介绍 HTTP 协议之前,我们先对 TCP/IP 协议族有个大概的了解,TCP/IP 协议从上到下主要分为应用层.传输层.网络层和数据链路层,各层的主要功能如下表所示: 协议层 ...
- python二进制打开(rb)和文本格式打开(r)什么区别?
使用 open() 函数以文本格式打开文件和以二进制格式打开文件,唯一的区别是对文件中换行符的处理不同. 在 Windows 系统中,文件中用 "\r\n" 作为行末标识符(即换行 ...
- python中__dict__与dir()区别
前言 Python下一切皆对象,每个对象都有多个属性(attribute),Python对属性有一套统一的管理方案. __dict__与dir()的区别: dir()是一个函数,返回的是list: _ ...
- java和C#面向对象的区别
问题:C#中的构造函数和java的构造函数一样吗? 答: .net的项目中,写实体Entity属性时,经常会为每一个属性写一对get和set方法,在用到这个实体或是一个类时,通过new实例化一个对象, ...
最新文章
- Python递归获取文件夹下面所有文件名字:
- 一条光纤的传输容量高达 661Tbps(附论文)
- SpringBoot实战(十一)之与JMS简单通信
- 机器学习(三)聚类深度讲解
- ITK:通过指定区域裁剪图像
- LeetCode 1653. 使字符串平衡的最少删除次数(DP)
- 什么软件测试显示器响应时间准,自己动手测试液晶显示器响应时间
- 属于程序员的黄金五年,把握这 5 年,或将迎来美好的职场生活!
- 几个预防并发搞垮下游服务的方法
- springboot使用Freemarker继承
- 整合ext和dwr 的小例子
- matlab-罗曼诺夫斯基准则剔除粗大值
- 【BERT】小学生级上手教程,从原理到上手全有图示,还能直接在线运行
- java nmap集成_nmap为了开发方便 可以做简单的修改
- 第十一届 蓝桥杯 省 模拟赛 试题+题解 C/C++描述
- yaml UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xba in position 15: illegal multibyte sequen
- 华为回应出售手机业务传闻:假消息;微软将ChatGPT整合到更多工具中:不用写代码就能开发应用;苹果更新Mac产品线|极客头条
- postgresql实现存在则更新,不存在则插入
- 古代汉语王力版复习重点要点
- 计算机wonder基础知识,WonderSkills教材来了!一套更适合中国孩子的美国语文教材...