python数据分析与展示(一):numpy库

本文详细介绍了NumPy库的基础知识,包括创建ndarray数组、数组变换、索引切片、数组运算、CSV文件读写、多维数据存取以及随机数和统计函数的使用。NumPy作为Python科学计算的核心库,提供了高效的数组操作和丰富的数学函数,是数据处理和科学计算的重要工具。
摘要由CSDN通过智能技术生成

简介

numpy库是一个开源的python科学计算基础库,它包含一个强大的N维数组对象ndarray。numpy库SciPy、Pandas等数据处理或科学计算库的基础。numpy的引用方法如下,np是约定的别名。

import numpy as np
  • numpy的数组对象:ndarray
    ndarray是一个多维数组对象。ndarray数组一般要求所有元素类型相同,数组下标从0开始。ndarray在程序中的别名是array。ndarray对象的属性如下图:
    在这里插入图片描述在这里插入图片描述
    其中Out[22]里的’int32’是numpy定义的元素类型。ndarray的元素类型如下:
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

1. ndarray数组的创建

(1)从python中的列表、元组等类型创建ndarray数组

x=np.array(list/tuple)
x=np.array(list/tuple,dtype=np.float32)
其中list代表列表,tuple代表元组,dtype指定每个元素的数据类型。当ndarray()不指定dtype时,Numpy将根据数据情况关联一个dtype类型。
在这里插入图片描述

(2)使用numpy中的函数创建ndarray数组。

在这里插入图片描述
像ones,zeros,eye等函数生成的数组的元素默认是浮点数类型,arange函数生成的数组的元素默认是整数类型,用户可以通过dtype指定元素的数据类型。
在这里插入图片描述
也可以生成多维数组,如:
在这里插入图片描述
还有几个和上面类似的函数
在这里插入图片描述

(3)使用numpy中的其它函数创建ndarray数组

在这里插入图片描述在这里插入图片描述
numpy中除了arange函数外,大部分函数生成的元素默认都是浮点数类型。

2. ndarray数组的变换

对于创建后的ndarray数组,可以对其进行维度变换和元素类型变换

(1)ndarray数组的维度变换

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

(2)ndarray数组的类型变换:new_a=a.astype(new_type)

在这里插入图片描述
注意:astype()方法一定会创建新的数组

(3)ndarray数组向列表的转换:ls=a.tolist()

在这里插入图片描述

3. ndarray数组的操作:索引和切片

索引:获取数组中特定位置元素的过程。
切片:获取数组元素子集的过程。

(1)一维数组的索引和切片

在这里插入图片描述

(2)多维数组的索引

在这里插入图片描述

(3)多维数组的切片

在这里插入图片描述

4. ndarray数组的运算

(1)数组与标量间的运算(一个数就叫做标量)

数组与标量之间的运算作用于数组的每一个元素,下面的例子是计算数组a与元素平均值的商。
在这里插入图片描述

(2)numpy中一元函数

在这里插入图片描述
其中第一行表示np.abs(x)和np.fabs(x)都可以计算数组各元素的平均值,最后一行的np.ceil(x)表示大于x的最小整数,np.floor(x)表示小于x的最大整数。
在这里插入图片描述
最后一行的np.sign(x)表示若x是正数输出1,若x是负数输出-1,若x=0则输出0。下面是例子:
在这里插入图片描述

(3)numpy二元函数

在这里插入图片描述
其中第一行的**表示乘方运算,比如2**3=2³=8.
在这里插入图片描述

5. 数据的csv文件读取

CSV(Comma-Separated Value,逗号分隔值)是一种常见的文件格式,用来存储批量数据,下图展示了将一个表格存储为CSV文件。
在这里插入图片描述在这里插入图片描述

(1)将数组存为CSV文件

在这里插入图片描述
下面是例子
在这里插入图片描述
生成的a.csv文件如下图。
在这里插入图片描述

(2)将CSV文件读入numpy数组中

在这里插入图片描述在这里插入图片描述

(3)CSV文件的局限性

CSV文件只能有效地存取一维和二维数组,即np.savetxt(),np.loadtxt()只能有效存取一维和二维数组。

6. 多维数据的存取

(1)tofile()方法和fromfile()方法

在这里插入图片描述
下面是例子:
在这里插入图片描述
打开b.dat文件,内容如下。
在这里插入图片描述
可见,b.dat文件并没有包含任何维度信息,它只是将数组中的元素逐一列出。但sep=‘’,即数据分割字符串是空串时输出的文件是二进制文件,此时我们不能用文本编辑器进行查看,因此二进制文件主要是用来进行数据备份。

在这里插入图片描述
例子如下:
在这里插入图片描述
该方法需要读取时知道存入文件时数组的维度和元素类型,因此tofile()和np.fromfile()需要配合使用。也可以通过元数据文件来存储额外信息。

7. numpy的便捷文件读取

在这里插入图片描述
例子如下:
在这里插入图片描述
可见,.npy文件可以直接还原出存储数据的维度和变量信息。打开a.npy文件,内容如下:
在这里插入图片描述
可见,在文件的开始以显示的方式记录了数组的元信息,包含数据的维度,元素的数据类型等。因此np.load()就可以解析这部分内容,从而获取数组的相关信息。
如果在编写程序时需要通过问价对数据进行缓存,可以使用np.save()和np.load()方法。如果需要存储文件来和其它的程序进行数据交互和对接,则可以生成csv文件,或通过tofile()和fromfile()方法来生成其它程序可以识别的文件。

8. numpy的随机数函数

使用方式:np.random.*
如:np.random.rand()

(1)np.random的随机数函数(1)

在这里插入图片描述
注:(d0,d1,…,dn)是维度的形状,shape也表示维度的形状。
下面是例子
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

(2)np.random的随机数函数(2)

在这里插入图片描述
注:shuffle(a)和permutation(a)是根据数组a的第0轴进行随机排列,即最外围的轴(轴从0开始数)。choice()中replace的默认应该为True,表示可以重用元素。可能是上面的图片表述的有问题。
下面是例子:
在这里插入图片描述在这里插入图片描述在这里插入图片描述

(3)np.random的随机函数(3)

在这里插入图片描述在这里插入图片描述

9. numpy的统计函数

使用方法:np.*
如:np.std()、np.var()等

(1) numpy的统计函数(1)

在这里插入图片描述
注:默认的axis=None表示对数组a中的所有元素进行统计,也可以指定axis从而只统计指定维度上的数据。
下面是例子:
在这里插入图片描述在这里插入图片描述

(2)numpy的统计函数(2)

在这里插入图片描述
注:argmin(a)、argmax(a)求出来的下标是将数组a扁平化为一维数组之后的下标。
下面是例子:
在这里插入图片描述
注:np.median()求中位数是一种运算,它的结果是通过公式求得的,因此其结果是浮点数。

10. numpy的梯度函数

在这里插入图片描述
梯度:连续值之间的变化率,即斜率。
例如,XY坐标轴连续三个X坐标对应的Y轴值:a,b,c,则b的梯度是:(c-a)/2,即b的前一个值减去b的后一个值,再除于这两个值之间的距离。
在这里插入图片描述
如上图,第二个梯度值是2.5,它的计算方法是:(6-1)/2。
数组a中第二个值6存在两侧值。对于数组a中的第一个值和最后一个值,它们不存在两侧值,它们的计算方法如下:比如数组a中第一个元素1,它的梯度值为(6-1)/1=5,再比如数组a中最后一个元素7,它的梯度值为(7-4)/1。
对于二维元素:
在这里插入图片描述
np.gradient(b)返回的两个数组分别对应两个不同的维度,第一个数组表明元素在最外层维度的梯度值,即计算每一列的梯度值。第二个数组表明元素在第二层维度的梯度值。

注:以上内容摘抄总结自北京理工大学嵩天老师的慕课,以方便自己和大家查阅。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值