Python中numpy库入门

Python中numpy

Numpy是一个开源的Python科学计算基础库

以下学习自中国大学MOOC 嵩天 《Python数据分析与展示》

一.Numpy库入门

1.Numpy的引入
import numpy as np

使用别名可以缩短在程序中导入numpy方法的长度,np为约定名

2.N维数据对象:ndarray
  • 数组对象可以去掉元素运算所需的循环,使一维向量更像单个数据
  • 设置专门的数组对象可以提升此类应用的运算速度
  • 数组对象采用相同的数据类型,可以帮助节省运算和存储空间
  • 程序中别名为array
3.ndarray对象的属性
属性 含义
.ndim 维度的数量
.shape ndarray对象的尺度,n行m列
.size ndarray对象的个数,其.shape中n*m
.dtype ndarray对象的元素类型
.itemsize ndarray对象中每个元素的大小,以字节为单位
3.ndarray对象的元素类型
数据类型 说明
bool 布尔类型,True或False
intc 与C语言中的int类型一致,一般是int32或int64
intp 用于索引的整数,与C语言中ssize_t一致,int32或int64
int8 字节长度的整数,取值:[‐128, 127]
int16 16位长度的整数,取值:[‐32768, 32767]
int32 32位长度的整数,取值:[‐231 , 231 ‐1]
int64 64位长度的整数,取值:[‐263 , 263 ‐1]
uint8 8位无符号整数,取值:[0, 255]
uint16 16位无符号整数,取值:[0, 65535]
uint32 32位无符号整数,取值:[0, 232 ‐1]
uint64 32位无符号整数,取值:[0, 264 ‐1]
float16 16位半精度浮点数:1位符号位,5位指数,10位尾数
float32 32位半精度浮点数:1位符号位,8位指数,23位尾数
float64 64位半精度浮点数:1位符号位,11位指数,52位尾数
complex64 复数类型,实部和虚部都是32位浮点数
complex128 复数类型,实部和虚部都是64位浮点数

这么多种的元素类型的存在因为:

  • 科学计算数据繁多,存储和性能要求极高
  • 有利于合理使用存储空间以及优化性能

二.ndarray数组的建立

1.使用原始结构类型创建
# 通过列表创建ndarray
a = np.array([1,2,3,4,5,6])
print(a)
# 通过元组创建ndarray
b = np.array((1,2,3,4,5,6))
print(b)

在这里插入图片描述

2.使用numpy函数创建

常规方法

函数 说明
np.arange(n) 类似range()函数,返回ndarray类型,元素从0到n‐1
np.ones(shape) 根据shape生成一个全1数组,shape是元组类型
np.zeros(shape) 根据shape生成一个全0数组,shape是元组类型
np.full(shape,val) 根据shape生成一个数组,每个元素值都是val
np.eye(n) 创建一个正方的n*n单位矩阵,对角线为1,其余为0

在这里插入图片描述
进阶方法

函数 说明
np.ones_like(a) 根据数组a的形状生成一个全1数组
np.zeros_like(a) 根据数组a的形状生成一个全0数组
np.full_like(a,val) 根据数组a的形状生成一个数组,每个元素值都是val
np.linspace() 根据起止数据等间距地填充数据,形成数组
np.concatenate() 将两个或多个数组合并成一个新的数组

在这里插入图片描述

三.ndarray数组的变换

1.维度变换
方法 说明
.reshape(shape) 不改变数组元素,返回一个shape形状的数组,原数组不变
.resize(shape) 与.reshape()功能一致,但修改原数组
.swapaxes(ax1,ax2) 将数组n个维度中两个维度进行调换
.flatten() 对数组进行降维,返回折叠后的一维数组,原数组不变

实例:
创建一个三维数组a
在这里插入图片描述

.reshape(shape) 不修改原数组

在这里插入图片描述

.resize(shape) 修改原数组

在这里插入图片描述

.swapaxes(ax1,ax2)

二维数组:
在这里插入图片描述
三维数组:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

.flatten() 将原数(原数组维度>1)组降维,一维还是原数组

在这里插入图片描述

2.类型变换
b = a.astype(new_type)

在这里插入图片描述

3.数组向列表的转换
a_list = a.tolist()

在这里插入图片描述

四.ndarray数组的操作(索引与切片)

1.一维数组(同列表)

在这里插入图片描述

2.多维数组

两个逗号隔开三个维度,分别进行操作
在这里插入图片描述

五.数组与标量之间的运算

数组与标量之间的运算作用于数组的每一个元素

一原函数

方法 说明
np.abs(x)np.fabs(x) 计算数组各元素的绝对值
np.sqrt(x) 计算数组各元素的平方根
np.square(x) 计算数组各元素的平方
np.log(x)np.log10(x)np.log2(x) 计算数组各元素的自然对数、10底对数和2底对数
np.ceil(x)np.floor(x) 计算数组各元素的ceiling值(向上取整) 或 floor值(向下取整)计算数组各元素的指数值
np.rint(x) 计算数组各元素的四舍五入值
np.modf(x) 将数组各元素的小数和整数部分以两个独立数组形式返回
np.cos(x)np.cosh(x)np.sin(x)np.sinh(x)np.tan(x)np.tanh(x) 计算数组各元素的普通型和双曲型三角函数
np.exp(x) 计算数组各元素的指数值
np.sign(x) 计算数组各元素的符号值,1(+), 0, ‐1(‐)

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

二原函数

方法 说明
+ ‐ * / ** 两个数组各元素进行对应运算
np.maximum(x,y) np.fmax() 元素级的最大值/最小值计算
np.mod(x,y) 元素级的模运算
np.copysign(x,y) 将数组y中各元素值的符号赋值给数组x对应元素
> < >= <= == != 算术比较,产生布尔型数组

原数组:
在这里插入图片描述
部分实例:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41179709/article/details/84349635