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

3b485a02c11ae079549a067b498ebe17.png

背景

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。


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/468265.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

unity UI事件

由于工作需要到持续按键,所以了解了一下unity UI事件,本文主要转载于http://www.cnblogs.com/zou90512/p/3995932.html?utm_sourcetuicool&utm_mediumreferral,并对相关问题进行解释。 我们最常用到的就是unity的button组件,…

java sar包_linux下查看最占性能的JAVA进程

记录一下自己常用的linux系统命令,方便以后查阅,发觉记忆越来越不行了找到最耗CPU的线程ps命令命令:ps -mp pid -oTHREAD,tid,time或者ps -Lfp pid结果展示:这个命令的作用,主要是可以获取到对应一个进程下的线程的一些…

电子工程学院的师兄弟姐们们,老师叫你们回家

昨天写了很长的文章,接收到推送的同学们应该也会很开心,但是由于我的原因,需要把文章删除「你们能想到的原因肯定不是我删文的原因」,但是呢,也因为这样,又可以重写一篇,刚好可以多加点内容。后…

auto.js停止所有线程_Java多线程编程基础知识 概念介绍,以及线程状态

一、进程进程是操作系统结构的基础;是一次程序的执行;是一个程序及其数据在处理机上顺序执行时所发生的活动。操作系统中,几乎所有运行中的任务对应一条进程(Process)。一个程序进入内存运行,即变成一个进程。进程是处于运行过程中…

android与js交互

首先引用一篇文章,看过这篇文章基本上就明白android大致与js是如何交互的了 Android与HTMLJS交互入门 ----------------------------分割线----------------------------------- 首先要知道js是啥,js就相当于在html内的函数方法,全称为javasc…

php调用md5.js,js中怎么使用md5加密

首先引入用法:hex_md5("123456");md5.js 文件下载:/** A JavaScript implementation of the RSA Data Security, Inc. MD5 Message* Digest Algorithm, as defined in RFC 1321.* Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.* Othe…

Linux 进程管理数据结构

文末集赞留言抽奖,我会选出留言点赞数前 3 名送出小米耳机。别刷赞啊,刷赞被举报无效,相信真的是公众号粉丝的读者,不会做这样的行为,刷赞指的是购买外挂刷,如果是转发到朋友圈和微信群的,不算刷…

USB设备驱动之设备初始化(设备枚举)

USB设备从接入HUB到正常工作之前。都属于设备枚举阶段。所谓设备枚举。就是让host控制器认识USB设备,并为其准备资源。建立好主机与设备间的数据传递机制。 该阶段的工作,是USB通信协议规定的,所以属于ISO标准流程。设备枚举阶段也相应了USB设…

如何安装python3.8_python3.8下载及安装步骤详解

1.操作系统:Windows7 64bit executable installer 2.安装步骤: 双击安装文件python-3.8.0-amd64.exe 勾选下方“Add Python 3.8 to PATH”,并选择“Customize installation”3.把Optional Features全部勾选上,点击“Next"4.A…

两台linux之间互传php脚本,linux下两台服务器实现同步的方法

本文主要和大家分享linux下实现两台服务器实时同步方法介绍,假设两个服务器:192.168.0.1 源服务器 有目录 /opt/test/和192.168.0.2 目标服务器 有目录 /opt/bak/test/,实现的目的就是保持这两个服务器某个文件目录保持实时同步。实现方式&am…

队列,C语言实现

什么是队列?上一篇文章写了什么是栈,用C语言实现了栈,既然说了栈,不说队列,感觉总是少了点什么,所以就顺手写一个队列,而且最近做项目也用到这个队列的代码。栈的特点是先进后出,队列…

ResultMap和ResultType在使用中的区别

在使用mybatis进行数据库连接操作时对于SQL语句返回结果的处理通常有两种方式,一种就是resultType另一种就是resultMap,下面说下我对这两者的认识和理解 resultType:当使用resultType做SQL语句返回结果类型处理时,对于SQL语句查询出的字段在相…

python游戏开发工程师_Python开发工程师-入门与实战视频课程

1 1、Python简介学习前提:C语言 Python的优势:C/C/Java库,编译运行周期太慢,Python快Python更简单易用,容易出成果Python还提供比C更多的错误检查Python可以方便的实现其它Python程序中重复使用的模块Python是一门解释…

matlab如何进行数字信号处理,数字信号处理基础及MATLAB实现(第2版)

【内容简介】本书系统地介绍了数字信号处理基本理论、设计方法和实现等方面的内容。全书共分9章,第1章介绍数字信号处理的研究对象、学科概貌、系统基本组成、特点、发展及应用等内容;第2章介绍离散时间信号与系统的基本概念、卷积的性质和计算、信号的频…

华为hr,我尽力了

最近,一则新闻很火但是突然,又不火了,火于不火之间,时间有点短,其中猜测很大部分是gongguan原因以下为正文截图~以上为事件原文,这个是一个热点新闻,之前发了一个热点新闻,瞬间就火爆…

idea,eclipse创建多模块项目

新建一个maven项目 iead,新建是不选择archetype,新建好之后,pom中的 <packaging>pom</packaging>节点是默认的,如果不是要改成这这样子 然后选中这个项目,新建一个module,之后就和建立普通项目一样了. eclipse 是这样的 建一个普通的maven项目就可以了 这个是建好之…

python画图程序代码_少儿python编程(7)海龟画图(拓展1)

我们继续用Python的海龟库来画图吧&#xff01;上图是画一朵花的程序&#xff0c;重点是6-12行&#xff0c;使用了函数来定义drawleaf:每一掰叶子由两条弧线组成&#xff0c;每一条弧线重复画15次&#xff0c;每次前进5步&#xff0c;右转6度。看图形化代码就很清楚了&#xff…

opencv matlab三维点云,点云采样的三种方法 - 小白学视觉的个人空间 - OSCHINA - 中文开源技术交流社区...

点击上方“小白学视觉”&#xff0c;选择“星标”公众号重磅干货&#xff0c;第一时间送达编辑&#xff1a;3D视觉工坊本文由知乎作者GeometryHub授权转载&#xff0c;不得擅自二次转载。原文链接&#xff1a;https://zhuanlan.zhihu.com/p/86044055点云采样分类点云采样的方法…

C语言数组越界导致无限循环

大奖也是你们的&#xff0c;感谢支持&#xff0c;不喜欢的请轻拍。过年抽奖我还是很期待的&#xff0c;每年公司的年会抽奖的时候&#xff0c;我总是能小中一把&#xff0c;有一年我还中了个一等奖&#xff0c;不知道大家对一等奖什么概念&#xff0c;中一等奖的概率非常低&…

七月流水账

7.1-7.3 >< 7.4 看了一会儿李老大给的Caffe的教程 重配python qt vtk&#xff0c;大概是原来装了一个xxx&#xff08;忘记名字&#xff09;&#xff0c;然后位数有些不对&#xff0c;搞了好一阵 果然还是卸载重装好>< 然后又看了会儿Matlab神经网络工具箱怎么用 …