Numpy科学计算库

文章目录

  • 1、创建数组
  • 2、数组运算
  • 3、矩阵和随机数

在机器学习中,需要把所有的输入数据都转变为多维数组的形式
数组的形状:描述数组的维度,以及各个维度内部的元素个数
数组的形状用一个元组来表示,它描述了数组的维度和长度

1、创建数组

NumPy
Numeric Python
提供了多维数组、矩阵的常用操作和一些高效的科学计算函数
底层运算通过C语言实现,处理速度快、效率高,适用于大规模多维数组
可以直接完成数组和矩阵运算,无需循环
导入NumPy库

import numpy as np

from numpy import *

创建数组

array ([列表]/(元组))

Numpy科学计算库_第1张图片
数组的属性

属性 描述
ndim 数组的维数
shape 数组的形状
size 数组元素的总个数
dtype 数组中元素的数据类型
itemsize 数组中每个元素的字节数

Numpy科学计算库_第2张图片
Numpy科学计算库_第3张图片
Numpy科学计算库_第4张图片
Numpy科学计算库_第5张图片
NumPy要求数组中所有元素的数据类型必须是一致的
Python支持的数据类型不足以满足多种科学计算的需求,NumPy增加了多种其他数据类型
Numpy科学计算库_第6张图片

array([列表]/(元组),dtype=数据类型)		#使用dtype指定数组中元素的数据类型

Numpy科学计算库_第7张图片
在使用Python列表或元组,创建NumPy数组时,所创建的数组类型,由原来的元素类型推导而来
创建特殊的数组

函数 功能描述
np.arange() 创建数字序列数组
np.ones() 创建全1数组
np.zeros() 创建全0数组
np.eye() 创建单位矩阵
np.linspace() 创建等差数列
np.logspace() 创建等比数列

Numpy科学计算库_第8张图片
Numpy科学计算库_第9张图片
Numpy科学计算库_第10张图片
Numpy科学计算库_第11张图片
在这里插入图片描述
Numpy科学计算库_第12张图片
Numpy科学计算库_第13张图片
Numpy科学计算库_第14张图片
Numpy科学计算库_第15张图片

Numpy科学计算库_第16张图片

Numpy科学计算库_第17张图片
Numpy科学计算库_第18张图片

Numpy科学计算库_第19张图片
asarray()函数:将列表或元组转化为数组对象
Numpy科学计算库_第20张图片
Numpy科学计算库_第21张图片
数组2没有变化,数组3发生改变
当数据源本身已经是一个ndarray对象时,array()仍然会复制出一个副本,asarray()则直接引用了本来的数组

2、数组运算

Numpy科学计算库_第22张图片
Numpy科学计算库_第23张图片
Numpy科学计算库_第24张图片

函数 功能描述
np.reshape(shape) 不改变当前数组,按照shape创建新的数组
np.resize(shape) 改变当前数组,按照shape创建数组

Numpy科学计算库_第25张图片

当改变形状时,应该考虑到数组中元素的个数,确保改变前后,元素总个数相等

Numpy科学计算库_第26张图片
Numpy科学计算库_第27张图片
Numpy科学计算库_第28张图片
Numpy科学计算库_第29张图片
Numpy科学计算库_第30张图片
若数组内的元素个数不同,则无法相加
一维数组可以和多维数组相加,相加时会将一维数组扩展至多维
Numpy科学计算库_第31张图片
数组之间的减法、乘法、除法运算,和加法运算规则相同
当两个数组中元素的数据类型不同时,精度低的数据类型,会自动转换为精度更高的数据类型,然后再进行运算

  • 幂运算:对数组中的每个元素求n次方
    Numpy科学计算库_第32张图片

矩阵运算
矩阵乘法
乘号运算符✖:矩阵中对应的元素分别相乘
Numpy科学计算库_第33张图片
矩阵相乘:按照矩阵相乘的规则运算
Numpy科学计算库_第34张图片
转置和求逆
矩阵转置:np.transpose()
矩阵求逆:np.linalg.inv()
Numpy科学计算库_第35张图片
数组间的运算

函数 功能描述
numpy.sum() 计算所有元素的和
numpy.prod() 计算所有元素的乘积
numpy.diff() 计算数组的相邻元素之间的差
np.sqrt() 计算各元素的平方根
np.exp() 计算各元素的指数值
np.abs() 取各元素的绝对值

Numpy科学计算库_第36张图片

轴(axes):数组中的每一个维度称为一个轴
秩(rank):轴的个数(和线性代数中秩的含义不同)

  • 一维数组(rank=1)

Numpy科学计算库_第37张图片

  • 二维数组(rank=2)
    Numpy科学计算库_第38张图片
  • 三维数组(rank=3)
    Numpy科学计算库_第39张图片
    Numpy科学计算库_第40张图片
    Numpy科学计算库_第41张图片
    Numpy科学计算库_第42张图片

数组堆叠运算

np.stack((数组1,数组2...),axis)

Numpy科学计算库_第43张图片
Numpy科学计算库_第44张图片
Numpy科学计算库_第45张图片
Numpy科学计算库_第46张图片
二维数组堆叠
Numpy科学计算库_第47张图片
Numpy科学计算库_第48张图片

3、矩阵和随机数

Numpy科学计算库_第49张图片
Numpy科学计算库_第50张图片

  • 借助NumPy二维数组创建矩阵

Numpy科学计算库_第51张图片

  • 矩阵对象的属性
属性 说明
.ndim 矩阵的维数
.shape 矩阵的形状
.size 矩阵的元素个数
.dtype 元素的数据类型

Numpy科学计算库_第52张图片
矩阵运算
矩阵相乘
Numpy科学计算库_第53张图片
Numpy科学计算库_第54张图片
Numpy科学计算库_第55张图片
非方阵的转置、求逆运算
Numpy科学计算库_第56张图片
Numpy科学计算库_第57张图片
随机数
随机数模块——numpy.random

函数 功能描述 返回值
np.random.rand(d0,d1,…,dn) 元素在[0,1)区间均匀分布的数组 浮点数
np.random.uniform(low,high,size) 元素在[low,high)区间均匀分布的数组 浮点数
np.random.randint(low,high,size) 元素在[low,high)区间均匀分布的数组 整数
np.random.randn(d0,d1,…,dn) 产生标准正态分布的数组 浮点数
np.random.normal(loc,scale,size) 产生正态分布的数组 浮点数

Numpy科学计算库_第58张图片
Numpy科学计算库_第59张图片
Numpy科学计算库_第60张图片
Numpy科学计算库_第61张图片
Numpy科学计算库_第62张图片
伪随机数:由随机种子,根据一定的算法生成的
随机种子:指定随机数生成时所用算法开始的整数值

  • 如果使用相同的seed()值,则每次生成的随机数都相同
  • 如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间差异而不同
  • 采用seed()函数设置随机种子,仅一次有效
  • 随机数产生的算法,和系统有关

Numpy科学计算库_第63张图片
打乱顺序函数

np.random.shuffle(序列)

Numpy科学计算库_第64张图片
多维数组只打乱第一维数据
Numpy科学计算库_第65张图片

你可能感兴趣的:(Python)