深度学习之Numpy篇

【知识框架】
在这里插入图片描述

一、ndarray数组

1、创建ndarray数组

array函数

该函数将列表转换为数组

import numpy as np
a = [0,1,2,3,4]
b = np.array(a)
print(b)

在这里插入图片描述

arange函数

创建一个数组,该数组是一个设定范围、确定间隔、递增的数组

import numpy as np
a = np.arange(0,10,2)#从0开始到10结束(不包括10),递增间隔为2
print(a)

【运行结果】
在这里插入图片描述

zeros函数

创建指定长度的形状的全0数组

import numpy as np
a = np.zeros([3,3])#创建一个3*3的全0数组
print(a)

【运行结果】

在这里插入图片描述

ones函数

创建指定长度和形状的全1数组

import numpy as np
a = np.ones([3,3])#创建一个3*3的全1数组
print(a)

【运行结果】
在这里插入图片描述

2、ndarray数组的属性

shape

数组的形状

import numpy as np
a = np.ones([3,3])#创建一个3*3的全1数组
print(a.shape)

【运行结果】
在这里插入图片描述

dtype

数组的数据类型

import numpy as np
a = np.ones([3,3])
print(a.dtype)

【运行结果】
在这里插入图片描述

size

数组中包含元素的个数,其大小等于各个维数的乘积

import numpy as np
a = np.ones([3,3])
print(a.size)

【运行结果】
在这里插入图片描述

ndim

数组的维度大小,其大小等于shape所包含的元素个数

import numpy as np
a = np.ones([3,3])
print(a.ndim)

【运行结果】
在这里插入图片描述

改变数组的形状和数据类型

改变形状用reshape(数组的切片)

import numpy as np
a = np.ones([3,3])
print('原数组形状',a.shape)
a = a.reshape([1,9])
print('当前数组形状',a.shape)

【运行结果】
在这里插入图片描述
改变数据类型用astype

import numpy as np
a = np.ones([3,3])
print('原数组类型',a.dtype)
a = a.astype(np.int64)
print('当前数组类型',a.dtype)

【运行结果】
在这里插入图片描述

3、标量和ndarray数组之间的运算

标量与数组的4种运算(加减乘除)

标量与数组内的每一个元素都运算

import numpy as np
a = np.ones([3,3])
b = 2.0+a
c = 2.0-a
d = 2.0*a
e = 2.0/a
print('原数组为:\n',a)
print('2+数组:\n',b)
print('2-数组:\n',c)
print('2*数组:\n',d)
print('2/数组:\n',e)

【运行结果】
在这里插入图片描述

数组与数组的运算

对应元素之间进行运算

import numpy as np
a = np.ones([3,3])
b = np.zeros([3,3])
c = a+b
d = a*b
print('数组a:\n',a,'\n数组b:\n',b)
print('a+b:\n',c)
print('a*b:\n',d)

【运行结果】
在这里插入图片描述

4、ndarray数组的统计方法

mean

计算算数平均数

import numpy as np
a = np.ones([3,3])
#两种表示方法
print(np.mean(a))
print(a.mean())

【运行结果】
在这里插入图片描述

std var

std:标准差 var:方差

import numpy as np
a = np.arange(0,10,2)
print('测试数组为:\n',a)
print('标准差为:',a.std())
print('方差为:',a.var())

【运行结果】
在这里插入图片描述

sum

求和

import numpy as np
a = np.arange(0,10,2)
print('测试数组为:\n',a)
print('求和为:',a.sum())

【运行结果】
在这里插入图片描述

max min

max:最大值 min:最小值

import numpy as np
a = np.arange(0,10,2)
print('测试数组为:\n',a)
print('最大值为:',a.max())
print('最小值为:',a.min())

【运行结果】

在这里插入图片描述

argmin argmax

最小值、最大值索引

import numpy as np
a = np.arange(0,10,2)
print('测试数组为:\n',a)
print('最大值索引为:',a.argmax())
print('最小值索引为:',a.argmin())

【运行结果】
在这里插入图片描述

cumsum cumprod

累加和累积(看运行结果)

import numpy as np
a = np.arange(0,10,2)
print('测试数组为:\n',a)
print('累加为:',a.cumsum())
print('累积为:',a.cumprod())

【运行结果】
在这里插入图片描述

二、np.random随机数

1、随机数组

均匀分布

import numpy as np
a = np.random.rand(10)
print(a)

【运行结果】
在这里插入图片描述

指定取值范围和形状

import numpy as np
a = np.random.uniform(low=-1.0,high=1.0,size=(3,3))#low下限,high上限,size形状
print(a)

【运行结果】
在这里插入图片描述

正态分布

import numpy as np
a = np.random.randn(9)
print(a)

【运行结果】
在这里插入图片描述

指定均值loc和方差scale

import numpy as np
a = np.random.normal(loc=2.0,scale=2.0,size=(3,3))
print(a)

【运行结果】
在这里插入图片描述

2、随机打乱顺序

import numpy as np
a = np.arange(0,10)
print('原数组a为:\n',a)
np.random.shuffle(a)
print('随机打乱顺序后:\n',a)

【运行结果】
在这里插入图片描述

3、随机选取元素

import numpy as np
a = np.arange(0,10)
print('原数组a为:\n',a)
b = np.random.choice(a)
print('随机选取的元素为:',b)

【运行结果】
在这里插入图片描述

三、线性代数

diag 求对角线元素

以一维数组的形式返回方阵的对角线元素

import numpy as np
a = np.arange(1,10)
a = a.reshape([3,3])
b = np.diag(a)
print('测试方阵为:\n',a)
print('对角线元素为:',b)

【运行结果】
在这里插入图片描述

dot 矩阵乘法

矩阵乘法

import numpy as np
a = np.arange(0,12)
b = a.reshape([3,4])
c = a.reshape([4,3])
d = b.dot(c)
print('矩阵b:\n',b)
print('矩阵c:\n',c)
print('矩阵b*矩阵c:\n',d)

【运行结果】
在这里插入图片描述

trace 对角元素之和

计算对角元素的和

import numpy as np
a = np.arange(1,10)
b = a.reshape([3,3])
c = np.trace(b)
print('测试方阵为:\n',b)
print('矩阵b的对角元素的和为:',c)

【运行结果】
在这里插入图片描述

det 矩阵行列式

计算矩阵的行列式

import numpy as np
a = np.arange(1,10)
b = a.reshape([3,3])
c = np.linalg.det(b)
print('矩阵b的行列式为:',c)

【运行结果】
在这里插入图片描述

eig 特征值和特征向量

计算方阵的特征值和特征向量

import numpy as np
a = np.arange(1,10)
b = a.reshape([3,3])
c = np.linalg.eig(b)
print('测试方阵为:\n',b)
print('矩阵b的特征值和特征向量:\n',c)

【运行结果】
在这里插入图片描述

inv 方阵的逆

计算方阵的逆

import numpy as np
a = np.random.rand(3,3)
b = np.linalg.inv(a)
print('测试方阵为:\n',a)
print('矩阵b的逆矩阵为:\n',b)

【运行结果】
在这里插入图片描述


记得点赞、关注、评论、收藏、转发😊😊

©️2020 CSDN 皮肤主题: 护眼 设计师:闪电赇 返回首页