背景

Numpy 提供的最重要的数据结构是 ndarray,它是 Python 中 list 的扩展。

Pandas 提供了两种非常重要的数据结构 Series和DataFrame。

Numpy 中的一维数组与 Series 相似,一维数组只是提供了从0开始与位置有关的索引,而Series除了位置索引之外还可以附加额外的索引。本文将从对象的创建、属性的访问、数据的获取以及常用方法等方面来总结这两种结构的异同。

1. 如何创建对象

1.1 创建一维数组对象

  • 通过 list或tuple 创建一维数组。
  • 通过数值范围来创建一维数组,比如linspace()函数,返回指定间隔内的等间隔数字。arange()函数,返回给定间隔内的均匀间隔的值。
import numpy 

1.2 创建Series对象

Series 可以看作是能够附加索引的一维数组,所以可以像 Numpy 创建一维数组一样使用 list或tuple 来创建,甚至可以使用 Numpy的一维数组 直接创建。

  • 通过列表list、元组tuple创建Series
  • 通过 Numpy 创建Series

另外,Series 可以附加索引,所以可以在创建的时候直接指定需要附加的索引,以及利用字典的key-value键值对 来直接创建。

  • 通过指定index关键字的方式创建带有自定义索引的Series
  • 通过字典dict创建Series
import pandas 

2. 如何获取属性

2.1 获取一维数组对象属性

在使用 Numpy 时,有时会想知道数组的某些信息,可以通过以下属性来得到:

  • numpy.ndarray.ndim 用于返回数组的维数(轴的个数)也称为秩,一维数组的秩为 1,二维数组的秩为 2,以此类推。
  • numpy.ndarray.shape 表示数组的维度,返回一个元组,这个元组的长度就是维度的数目,即 ndim 属性(秩)。
  • numpy.ndarray.size 数组中所有元素的总量,相当于数组的shape中所有元素的乘积,例如矩阵的元素总量为行与列的乘积。
  • numpy.ndarray.dtype ndarray 对象的元素类型。
import numpy 

2.2 获取Series对象属性

Series 除了拥有 Numpy 中ndimsizeshapdtype属性外,还拥有下列属性:

  • index 附加的索引
  • values 存储的数据
  • name 对象的名称
import pandas 

3. 如何获取数据

3.1 获取一维数组对象数据

一维数组只有默认的位置索引,即从0开始的索引,所以获取数据只有通过位置索引这一种方式。

  • 通过整数索引(要获取数组的单个元素,指定元素的索引即可。)
  • 通过切片索引(切片操作是指抽取数组的一部分元素生成新数组。)
  • 通过整数数组索引(方括号内传入多个索引值,可以同时选择多个元素。)
  • 通过布尔索引(通过一个布尔数组来索引目标数组。)
import numpy 

3.2 获取Series对象数据

因为不附加索引的 Series 也拥有位置索引,所以可以延用一维数组获取数据的方式。另外 Series 也可以通过附加索引来获取数据。

  • 通过位置获取数据
  • 通过索引获取数据
  • 通过head()tail()获取数据
import pandas 

4. 基本运算

4.1 查看描述性统计数据

一维数组对象

描述性统计分析最常见的函数如下:

  • numpy.min()函数:返回数组的最小值或沿轴的最小值。
  • numpy.max()函数:返回数组的最大值或沿轴的最大值。
  • numpy.quantile()函数:计算沿指定轴的数据的分位数。
  • numpy.median()函数:沿指定轴计算中位数。返回数组元素的中位数。
  • numpy.mean()函数:计算沿指定轴的算术平均值。
  • numpy.std()函数:计算沿指定轴的标准偏差。
import numpy 

Series对象

除了一维数组所提供的函数之外,Series也提供了更多的函数用于描述性统计分析。

import pandas 

4.2 数学运算

一维数组对象

  • numpy.add()函数:按元素相加。
  • numpy.subtract()函数:按元素相减。
  • numpy.multiply()函数:按元素相乘。
  • numpy.divide()函数:返回输入的实际除法(按元素)。
  • numpy.floor_divide()函数:返回小于或等于输入除法的最大整数(地板除)。
  • numpy.power()函数:按元素做幂运算。

在 Numpy 中对以上函数进行了运算符的重载,且运算符为 元素级。也就是说,它们只用于位置相同的元素之间,所得到的运算结果组成一个新的数组。

import numpy 

Series对象

Series 与 Numpy 中的一维数组一样支持常用运算符的重载,并且可以把 Series对象 作为参数带入到 Numpy 的数学运算中。

  • numpy.sqrt()函数:按元素返回数组的非负平方根。
  • numpy.log()函数:按元素取自然对数。
import pandas 

4.3 其它运算

由于 Series 可以附加索引,所以两个 Series对象 进行相加的时候,必须满足索引对齐。另外,Series 可以通过to_numpy()方法转化成 Numpy 的一维数组。

import pandas 

总结

我们通过实例从对象的创建、属性的获取、数据的访问以及常用函数等维度对比了 Numpy 的一维数组和 Pandas 的 Series 结构。很多知识都是相通的,多对比多总结就会对整个模块有更深入的了解。今天就到这里吧,See You。


后台回复「搜搜搜」,随机获取电子资源!
欢迎关注,请扫描二维码:

es6一维数组转二维数组_技术图文:Numpy 一维数组 VS. Pandas Series相关推荐

  1. 如何将多个一维列表转化为二维列表_数据分析2_如何处理一维、二维数据

    吞一块大饼,还不如切成小块吃得香 常见的数据集,要么是数列,要么是表格: 因此,数据分析最首要的是,处理一维.二维数据. 主要知识点可参考如图. 如需要,可点击以下百度网盘链接下载数据分析基础知识图P ...

  2. 技术解读 一维码,二维码,zxing

    一维码,二维码,zxing 什么是一维码.二维码?一维码就是商品包装盒上的条形码,例如:书本后面的条形码,在真维斯或者其他等品牌店的衣服标签上都可以看到,一维码的应用已经很广泛了:而二维码就是.... ...

  3. c语言bool怎么用_C语言中的一维数组和二维数组什么?怎么用?

    C++| 匠心之作 从0到1入门学编程[免费]​yun.itheima.com C语言除了基本数据类型之外,还提供了构造类型的数据,构造类型的数据包括数组类型.结构体类型和共用体类型.下面我们详细介绍 ...

  4. android 一维数组遍历,$.each()循环遍历一维数组、二维数组、JSON数据和DOM元素

    本文介绍$.each()循环遍历一维数组.二维数组.JSON数据和DOM元素. 请注意在使用JQuery $.each()方法前,要首先引用jquery库文件. $.each()循环遍历一维数组 Jq ...

  5. php 数组与数组之间去重,PHP开发中一维数组与二维数组去重功能实现教程

    本篇文章讲述了PHP实现一维数组与二维数组去重功能示例.希望对在php学习和开发的同学有所帮助! 数组中重复项的去除 一维数组的重复项: 使用array_unique函数即可,使用实例如下: ? $a ...

  6. 【C 语言】数组 ( 验证二维数组内存是线性的 | 打印二维数组 | 以一维数组方式打印二维数组 | 打印二维数组值和地址 )

    文章目录 一.验证二维数组内存是线性的 1.打印二维数组 2.以一维数组方式打印二维数组 3.打印二维数组值和地址 二.完整代码示例 一.验证二维数组内存是线性的 验证二维数组内存是线性的 : 验证方 ...

  7. 二维数组,锯齿数组和集合 C# 一维数组、二维数组(矩形数组)、交错数组(锯齿数组)的使用 C# 数组、多维数组(矩形数组)、锯齿数组(交叉数组)...

    二维数组,锯齿数组和集合 一.二维数组 二维数组: 一维数组----豆角 二维数组----表格 定义: 1.一维数组: 数据类型[] 数组变量名 = new 数据类型[数组长度]; 数据类型[] 数组 ...

  8. C语言中的一维数组和二维数组

    该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/104344394 一 ...

  9. 【蓝桥杯Java_C组·从零开始卷】第四节、一维数组与二维数组

    整篇文章为对java数组的完整理解以及部分排序,并有一些简单的demo,经典的案例与蓝桥杯的一些经典数组题有专门的文章梳理. 目录 数组概述 什么是数组 数组的结构 数组的特点: 数组分类 一维数组声 ...

  10. MATLAB 将不同长度的一维数组存入二维数组

    将多个不同长度的一维数组存入二维数组时,需要将所有一维数组的长度转为相同长度,可以采用在数组后边补零的方式实现. 如果a是行向量,M是你要的最终向量的长度,用 a=[a , zeros(1,M-len ...

最新文章

  1. scala入门基础2
  2. 写给工程师的十条精进原则
  3. 人脸关键点估计人头姿态
  4. 案例驱动python编程入门-事件驱动程序
  5. 【转】简单的java缓存实现
  6. axure日期选择器控件_JavaFX 控件 - 输入 (Control - Inputs)
  7. datagrid vue_类似 easyui 中 datagrid 使用习惯的 element-ui 数据表格组件(el-datagrid)...
  8. 数据结构与算法:终于可以用三种语言(C,C#,JavaScript)把图的广度优先遍历讲清楚了(推荐收藏)
  9. leetcode 1365. 有多少小于当前数字的数字(排序)
  10. Android官方开发文档Training系列课程中文版:数据存储之键值对序列存储
  11. Hadoop生态圈介绍
  12. 东大OJ-Max Area
  13. 代码中,对象类与管理类要分开
  14. Atitit mq读取队列信息 范例 目录 1.1. 读取原理与主要流程 1 1.2. 范例项目 C:\0wkspc\MqDemoPrj 1 1.3. 范例代码 1 1.1.读取原理与主要流程
  15. koa mysql mongodb_koa如何连接MongoDB
  16. 后渗透篇:清理windows入侵痕迹总结【详细】
  17. 数学建模 CUMCM2018年A题真题(本文由西南民族大学白白不加糖、薄荷CC糖原创)
  18. unity 游戏在 Android12 上崩溃啦(小米12)
  19. 微信小程相对图片路径_微信小程序中图片绝对定位(背景图片)的方法
  20. docker 安装redis详细说明

热门文章

  1. 3.5.2 冒泡排序类
  2. [导入]Gemini翻譯為中文時的注意事項
  3. 【狂神说】分析前后端分离开源项目?
  4. mac安装完mysql后关机特别慢_mysql-Mac终端下遇到的问题总结
  5. 如何使用notepad运行python程序
  6. 机器学习中各类算法的优缺点比较
  7. linux pid t 头文件_linux系统调用相关头文件
  8. cad多段线画圆弧方向_CAD箭头怎么画
  9. tcp前4字节消息长度_网络基础篇之TCP
  10. c++远征之模板篇——函数模板、类模板