目录

一、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的区别和联系相关推荐

  1. RPC 笔记(01)— RPC概念、调用流程、RPC 与 Restful API 区别

    1. 基本概念 PRC 远程过程调用 Remote Procedure Call,其就是一个节点请求另外一个节点提供的服务.当两个物理分离的子系统需要建立逻辑上的关联时,RPC 是牵线搭桥的常见技术手 ...

  2. C++ 笔记(28)— C++ 中 NULL和 nullptr 的区别

    最近看公司代码的时候发现在判断指针是否为空的时候,有的时候用的是 NULL, 有的时候用的是 nullptr 感觉很奇怪,好奇心驱使我查了下两者的区别,发现还是有很多细节需要学习的. 1. NULL ...

  3. gcc 和 g++ 的联系和区别,使用 gcc 编译 c++

    GCC 编译器已经为我们提供了调用它的接口,对于 C 语言或者 C++ 程序,可以通过执行 gcc 或者 g++ 指令来调用 GCC 编译器. 实际使用中我们更习惯使用 gcc 指令编译 C 语言程序 ...

  4. Python2 与 Python3 区别

    Python2.x 与 Python3.x 区别 1. print 函数 Python2 中 print 是语句(statement),Python3 中 print 则变成了函数.在 Python3 ...

  5. Docker 入门系列(1)- 初识容器,镜像、容器、仓库的区别

    Docker 简介 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发 ...

  6. HTTP 协议入门 — (TCP/IP协议族、通信传输流、URI 与 URL 的区别、Cookie 状态管理、HTTP 支持的方法、状态码类别、HTTP 首部字段)

    TCP/IP协议族 在介绍 HTTP 协议之前,我们先对 TCP/IP 协议族有个大概的了解,TCP/IP 协议从上到下主要分为应用层.传输层.网络层和数据链路层,各层的主要功能如下表所示: 协议层 ...

  7. python二进制打开(rb)和文本格式打开(r)什么区别?

    使用 open() 函数以文本格式打开文件和以二进制格式打开文件,唯一的区别是对文件中换行符的处理不同. 在 Windows 系统中,文件中用 "\r\n" 作为行末标识符(即换行 ...

  8. python中__dict__与dir()区别

    前言 Python下一切皆对象,每个对象都有多个属性(attribute),Python对属性有一套统一的管理方案. __dict__与dir()的区别: dir()是一个函数,返回的是list: _ ...

  9. java和C#面向对象的区别

    问题:C#中的构造函数和java的构造函数一样吗? 答: .net的项目中,写实体Entity属性时,经常会为每一个属性写一对get和set方法,在用到这个实体或是一个类时,通过new实例化一个对象, ...

最新文章

  1. Python递归获取文件夹下面所有文件名字:
  2. 一条光纤的传输容量高达 661Tbps(附论文)
  3. SpringBoot实战(十一)之与JMS简单通信
  4. 机器学习(三)聚类深度讲解
  5. ITK:通过指定区域裁剪图像
  6. LeetCode 1653. 使字符串平衡的最少删除次数(DP)
  7. 什么软件测试显示器响应时间准,自己动手测试液晶显示器响应时间
  8. 属于程序员的黄金五年,把握这 5 年,或将迎来美好的职场生活!
  9. 几个预防并发搞垮下游服务的方法
  10. springboot使用Freemarker继承
  11. 整合ext和dwr 的小例子
  12. matlab-罗曼诺夫斯基准则剔除粗大值
  13. 【BERT】小学生级上手教程,从原理到上手全有图示,还能直接在线运行
  14. java nmap集成_nmap为了开发方便 可以做简单的修改
  15. 第十一届 蓝桥杯 省 模拟赛 试题+题解 C/C++描述
  16. yaml UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xba in position 15: illegal multibyte sequen
  17. 华为回应出售手机业务传闻:假消息;微软将ChatGPT整合到更多工具中:不用写代码就能开发应用;苹果更新Mac产品线|极客头条
  18. postgresql实现存在则更新,不存在则插入
  19. 古代汉语王力版复习重点要点
  20. 计算机wonder基础知识,WonderSkills教材来了!一套更适合中国孩子的美国语文教材...

热门文章

  1. QUIC报文格式详解
  2. [三]RabbitMQ-客户端源码之ChannelManager
  3. 『Go 语言底层原理剖析』文末送书
  4. 旋转排序数组系列题详解
  5. OS- -文件系统(二)
  6. Bitmovin视频开发者报告回顾
  7. 扶凯:海量视频和用户时代的CDN
  8. map/set/multi_map/multi_set/unorder_map/unorder_set总结
  9. cmake使用示例与整理总结
  10. 当 高并发系统下 Redis 发生高延迟时,其内部到底发生了什么