Numpy

Numpy(基础包)

主要功能:

  • 一个多维数组结构,高效且节省空间

  • 无需循环对整个数组进行快速运算的函数

  • 线性代数、随机数生成和傅里叶变换功能

安装

pip install numpy

引用: import numpy as np

ndarray-多维数组对象

创建ndarray

np.array(list)

与list的区别:

  • ndarray改值不改大小,数组间对应位置的元素可进行运算

  • list改大小不改值

比如

a = np.array([i for i in range(10)])
b = [i for i in range(10)]
a*3
>>  array([ 0,  3,  6,  9, 12, 15, 18, 21, 24, 27])
b*3
>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

常用属性

属性 注释
dtype 数组中数据类型
size 数组中元素个数
shape 用元组表示数组,比如二维数组是(n*m),n行m列
T 数组的转置,比如行变成列,列变成行
ndim 数组的维数

常用方法

方法 注释
array() 创建数组
zeros() 创建全0的数组
ones() 创建全1的数组
empty() 创建空数组(随机值)
arange() 根据数据范围创建数组
linspace() 线性创建数组,范围数据平均分成n份,步长一致,呈线性递增或者递减
eye() 创建线性代数的单位矩阵
reshape() 根据数组形状排列数组

索引和切片

多维数组的索引

列表式写法:a[2][3]

新式写法:a[2,3]

多维数组的切片

新式写法:a[0:2,0:3]

布尔型索引

列表式写法:list(filter(lambda x:x>5,a))

新式写法:a[(a>5) & (a%2==0)],加了括号才能当and使用,否则会成为位运算的与

a[(a>5) | (a%2==0)]

底层原理:

  • 对每一个元素进行判断,返回一个布尔数组

  • 返回对应位置为True的元素的数组

a = array([0,1,2,3])
​
a[[True,False,False,True]]
>> array([0,3]) # 只显示True的元素

花式索引

a[[1,3,4,6,7]]:返回数组中与其中列表中的数组一致的元素

多维数组写法:a[[1,3],:][:,[1,3]]

通用函数

一元函数

abssqrt,exp,log,floor(向下取整),ceil(向上取整),round(四舍五入),trunc(截断取整),rint(取整),modf(把小数和整数分开存储),isnan(是否不是数),isinf(是否无穷大)

二元函数

add,substract,multiply,divide,power,mod,maximumminium(每个对应位置的元素进行比较)

统计

方法 描述
sum() 求和
mean() 求平均
var() 求方差,表示数据的离散程度,越小越稳定
std() 标准差,越小
max() 最大值
min() 最小值
argmax() 最大值下标
argmin() 最小值下标

随机生成

方法 描述
np.random.randint() 给定shape产生随机数组(0~1)
np.random.rand() 给定shape产生随机整数数组
np.random.choice() 给定shape产生随机选择数组
np.random.uniform() 给定shape产生随机数组
np.random.shuffle() 与random.shuffle()相同
上一篇:GPU随机采样速度比较


下一篇:YOLO V4 :win10+cpu环境的体验