数据分析-----NumPy中的ndarray数组

目录

Numpy概述

Python中的数组 

NumPy中的ndarray

ndarray中的数据类型

 ndarray多维数组属性

 ndarray的创建

NumPy 切片和索引

NumPy 线性代数

总结 


Numpy概述

Numpy是什么,Numpy是一个开源的Python科学计算库,用于快速处理任意维度的数组

Numpy支持常见的数组和矩阵操作,对于同样的数值计算任务,使用NumPy不仅代码要简洁的多,而且NumPy的性能远远优于原生Python,基本是一个到两个数量级的差距,而且数据量越大,NumPy的优势就越明显。

Numpy最为核心的数据类型是ndarray,使用ndarray可以处理一维、二维和多维数组,该对象相当于是一个快速而灵活的大数据容器。

NumPy底层代码使用C语言编写,解决了GIL的限制,ndarray在存储数据的时候,数据与数据的地址都是连续的,这样就给使得批量操作速度很快,远远优于python中的list。

另一方面ndarray对象提供了更多的方法来处理数据,尤其是和统计相关的方法,这些方法也是python原生的list没有的。

Python中的数组 

在python中,我们常用list和tuple等数据结构表示数组,也或者使用array模块(非内置模块)表示数组。但是array提供的函数并不丰富,而且它也不支持多维数组,所以在丰富的数据分析中这是无法满足的。但是好在NumPy可以为我们提供帮助。

NumPy中的ndarray

1. NumPy中的核心数据结构

2. 所有元素是同一种类型

3. 别名array(数组)

4.节省内存,提高CPU计算时间,有丰富的函数

5. NumPy的思维模式是面向数组

ndarray中的数据类型

 ndarray多维数组属性

1. 数组下标都是从0开始

2. 同一个ndarray数组中的所有元素的类型必须相同

3. 秩(rank)即维数,一维数组的秩为1,二维数组的秩为2,以此类推

4. 轴(axis):每一个线性的数组称为是一个轴,也就是维度(dimensions)。比如,二维数组相当于是两个一维数组,其中第一个一维数组中每个元素又是一个一维数组,所以一维数组就是ndarray中的轴,第一个轴(也就是第0轴)相当于是底层数组,第二个轴(也就是第1轴)是底层数组里的数组

很多时候可以声明axis。axis=0,表示沿着第0轴进行操作,即对每一列进行操作;axis=1,表示沿着第1轴进行操作,即对每一行进行操作

NumPy 的数组中比较重要 ndarray 对象属性如下:

 看了这些属性,我们也不知道是啥意思,那么下面以一个4*4的数组为例子:

 从图中我们可以看出,一维为第0轴(列),二维为第1轴(行)。下面我们通过代码表示出来如下:

 ndarray的创建

ndarray的创建方法如下:

1. 从python的基础数据对象转化

2. 通过numpy内置函数生成

3. 从硬盘(文件)中直接读取

常见的创建函数如下:

 那么总结了多函数,也不如来个实际的例子舒服:

NumPy 切片和索引

1. ndarray对象的内容可以通过索引或切片来访问和修改,与 Python 中 list 的切片操作一样。

2. ndarray 数组可以基于 0 - n 的下标进行索引,切片对象可以通过内置的 slice 函数,并设置 start, stop 及 step 参数进行,从原数组中切割出一个新数组

3.冒号分隔切片参数 start:stop:step 来进行切片操作

4.切片还可以包括省略号 …,来使选择元组的长度与数组的维度相同。 如果在行位置使用省略号,它将返回包含行中元素的 ndarray

例子如下:

NumPy 线性代数

NumPy 提供了线性代数函数库 linalg,该库包含了线性代数所需的所有功能,如下:

 代码如下:

总结 

numpy库主要用于处理ndarray,也就是多维数组,而且在实际应用中需要的各种功能基本上都有,使用时只需要调用相应的接口函数即可。如果想了解更多numpy的使用,请看Numpy教程

  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yi Ian

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值