pracitice1:是针对矩阵元素的基本运算

#practice1是针对矩阵元素的基本运算
import numpy as np
A=np.array([[1,2,3],[3,4,5]])#列表转换成矩阵
Awithalphabet=np.array([[1,"b",3],[3,4,5]])#看看矩阵里是否只能塞数字 答案是也可以装其他东西
Aarray=[1,2,3],[3,4,5]#对比矩阵与普通列表的区别
zero=np.zeros((3,5))#生成一个3行5列的0矩阵
E=np.eye(2)#生成一个2阶单位阵
Ainarow=np.arange(6)#生成从0到5的行向量
Ainarow23=np.arange(6).reshape(2,3)#生成一个两行三列(reshape的功能)数字从0到5的矩阵  reshape是不是双层括号都可以见下
Arandom=np.random.rand(5,5)#生成一个5*5的元素是0~1里的随机数组成的矩阵
Aempty=np.empty((3,4))#生成一个3行4列的空矩阵(但实际上里面的元素全是很接近0的)
Amyup=np.linspace(0,2.7,10).reshape((2,5))#把0~2.7砍成10份像个等差数列一样 再按递增顺序弄2*5的矩阵
Asum=np.sum(A)#求A中所有元素之和
Asin=np.sin(A)  # 对A内部所有元素取个sin
Aaverage=np.mean(A)#求A中所有元素的平均值
Amidnum=np.median(A)#求A中所有元素的中位数
Amax=np.max(A)#求A中最大的那个元素
Arowmax=np.max(A,axis=1)#求A每一行中最大值
Acolumnmax=np.max(A,axis=0)#求A中每一列中最大值
Amaxindex=np.argmin(A)#求A中最小值的索引
Ax1jiax2=np.cumsum(A)#前一个数加到第二个第二个加到第三个(有点像斐波那契)
Aclip=np.clip(A,2,4)#让小于2的数变成2 大于4的数变成4
def printtest():print(Aarray)print('\n')print(A)print("总元素个数:",A.size)print("行数/列数:",A.shape)print("维数:",A.ndim)print('\n')print(Awithalphabet)print('\n')print(zero)print('\n')print(E)print('\n')print(Ainarow)print('\n')print(Ainarow23)print('\n')print(Arandom)print('\n')print(Aempty)print('\n')print(Amyup)print('\n')print(Asum)print(Aaverage)print(Amidnum)print(Amax)print(Arowmax)print(Acolumnmax)print(Amaxindex)print(Ax1jiax2)print(Aclip)print(Asin)

practice2:是针对矩阵由关线性代数内容的一些运算

#practice2是针对矩阵有关线性代数内容的一些运算
import numpy as np
AA=np.array([[1,2,3],[4,5,6],[7,8,9]])
BB=np.eye((3))
CC=np.array([[1,2,0],[2,3,1]])
DD=np.array([[1,2],[5,6]])AAjianBB=AA-BB#线性代数的矩阵加减法
print(AAjianBB)
print('\n')
yuansupingfang=AA**2#AA内部元素的平方
print(yuansupingfang)
print('\n')
print(AA*BB)#元素逐个相乘
print('\n')
chengfa=np.dot(CC,AA)#线性代数的矩阵乘法
print(chengfa)
print('\n')
zhuanzhi=np.transpose(AA)#线性代数的矩阵转置
print(zhuanzhi)
AABBshangxia=np.vstack((AA,BB))#把矩阵A和矩阵B上下合并 即线性代数中把三阶单位阵B拼到A下面
print(AABBshangxia)
AABBzuoyou=np.hstack((AA,BB))#把矩阵A和矩阵B左右合并 即线性代数中把B拼到A右边 如果把AA,BB改成AA,CC会报错 因为A是3*3 而C是2*3 左右拼不起!
print(AABBzuoyou)
print('\n')
DDdet=np.linalg.det(DD)#求矩阵D的行列式
DDni=np.linalg.inv(DD)#求矩阵D的逆
DDbansui=DDni*DDdet#利用数学公式|A|A^-1=A*
DDtrace=np.trace(DD)#求矩阵D的迹
DDrank=np.linalg.matrix_rank(DD)#求矩阵的秩
print(DD)
print(DDdet)
print(DDni)
print(DDbansui)
print(DDtrace)
print(DDrank)

practice3:是针对矩阵索引的运算

#practice3是针对矩阵索引的运算
import numpy as np
A=np.arange(1,13).reshape((3,4))
print(A)
print(A[2][1])#输出第3行的第3个第2个元素(第一行是A[0][])
for Arow in A:print(Arow)#输出每一行print('\n')
#要遍历每一列怎么办?答:先转置在遍历
for Acolumn in A.T:#A.T表示A的转置print(Acolumn)print('\n')
for element in A.flat:#先把矩阵变成一个只有一行的向量 再通过for循环把A的每个元素全部取出来遍历print(element)
print('\n')

practice4:矩阵的复制 关联

#practice4是修改矩阵元素、把B的某列赋给A的某列以及矩阵的复制、关联
import numpy as np
A=np.arange(12).reshape(3,4)#生成3行4列元素从0到11的矩阵
print(A)
#axis=0表示分成多行 axis=1表示分成多列
print(np.split(A,3,axis=0))#按行分成3个行向量
print(np.split(A,4,axis=1))#按行分成4个3维列向量
C=np.copy(A)#把A赋值给C但是没有关联
B=A#把A和B等同关联起来
A[2][1]=88#把A的第3行第2列改成88
A[:,0]=222#把A的第1列改成222
A[1]=5#把A的第2行全部改成5
#[][2]=10#
print(A)
print(B)
print(C)
B[:,0]=C[:,1]#把C的第2列赋值给B的第1列
print(B)
print(C)

practice5:

#practice5是增加删除矩阵的行或列
import numpy as np
a=np.array([[1,2,3],[3,4,5],[7,8,9]])
br=np.ones(3)#形成一个行向量 这里注意在numpy中他虽然是横着写的但是实际是一个列向量
bc=np.ones(3).reshape(3,1)
c=np.eye(3)print(a)
print(br)
print(bc)
print(c)
print("下面是变化后的")
print(np.c_[br,c])#把c加到br的第一列
print(np.c_[c,br])#把c加到br的最后面那列
print(np.c_[c,bc])#本句结果和上句是一样的
print(np.r_[a,c])#把c拼在a下面
print(np.c_[a,c])#把c拼在a右边
#这里注意np.r_是按列链接 就是把两个矩阵上下拼 要求列数相等 而np.c_是左右拼 要求行数相等

以上就是暂时可能会用到的操作

吴恩达机器学习学习笔记第六章:机器学习中的线性代数操作python3版(含numpy、panda库的使用)相关推荐

  1. 深度学习如何提高训练集准确率_吴恩达深度学习笔记(61)-训练调参中的准确率和召回率...

    单一数字评估指标(Single number evaluation metric) 无论你是调整超参数,或者是尝试不同的学习算法,或者在搭建机器学习系统时尝试不同手段,你会发现,如果你有一个单实数评估 ...

  2. 准确率 召回率_吴恩达深度学习笔记(61)-训练调参中的准确率和召回率

    单一数字评估指标(Single number evaluation metric) 无论你是调整超参数,或者是尝试不同的学习算法,或者在搭建机器学习系统时尝试不同手段,你会发现,如果你有一个单实数评估 ...

  3. 吴恩达深度学习笔记(四)

    吴恩达深度学习笔记(四) 卷积神经网络CNN-第二版 卷积神经网络 深度卷积网络:实例探究 目标检测 特殊应用:人脸识别和神经风格转换 卷积神经网络编程作业 卷积神经网络CNN-第二版 卷积神经网络 ...

  4. Machine Learning(吴恩达) 学习笔记(一)

    Machine Learning(吴恩达) 学习笔记(一) 1.什么是机器学习? 2.监督学习 3.无监督学习 4.单变量线性回归 4.1代价函数 4.2 梯度下降 5.代码回顾 最近在听吴恩达老师的 ...

  5. 花书+吴恩达深度学习(二六)近似推断(EM, 变分推断)

    文章目录 0. 前言 1. 将推断视为优化问题 1.1 期望最大化 EM 1.2 最大后验推断 MAP 1.3 稀疏编码 2. 变分推断 2.1 离散型潜变量 2.2 连续性潜变量 如果这篇文章对你有 ...

  6. 花书+吴恩达深度学习(十六)序列模型之双向循环网络 BRNN 和深度循环网络 Deep RNN

    目录 0. 前言 1. 双向循环网络 BRNN(Bidirectional RNN) 2. 深度循环网络 Deep RNN 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花 ...

  7. 吴恩达深度学习笔记——结构化机器学习项目(Structuring Machine Learning Projects)

    深度学习笔记导航 前言 传送门 结构化机器学习项目(Machine Learning Strategy) 机器学习策略概述 正交化(orthogonalization) 评价指标 数字评估指标的单一性 ...

  8. 799页!吴恩达深度学习笔记.PDF

    吴恩达深度学习课程,是公认的最优秀的深度学习课程之一,目前没有教材,只有视频,本文提供完整笔记下载,这本笔记非常适合和深度学习入门. 0.导语 黄海广博士和同学将吴恩达老师深度学习视频课程做了完整的笔 ...

  9. 吴恩达深度学习笔记——卷积神经网络(Convolutional Neural Networks)

    深度学习笔记导航 前言 传送门 卷积神经网络(Convolutional Neural Networks) 卷积神经网络基础(Foundations of Convolutional Neural N ...

最新文章

  1. 软考高项之范围管理-攻坚记忆
  2. IIC总线上挂载多个从机的程序实现
  3. python assert的作用
  4. ASP.NET Core官方文档+源码,这样学效率高10倍!
  5. Dll学习一_Dll 创建并动态引用窗体且释放窗体Demo
  6. alex的ATM学习笔记
  7. [Vue CLI 3] 环境变量和模式配置实践与源码分析
  8. 中标麒麟7.0+linux内核版本,中标麒麟7.0下载
  9. 小米 线刷 android,小米10 Android 11 Beta 1线刷包已放出,安卓11/MIUI 12二选一
  10. 标签、画像设计与模型落地
  11. 批处理睡眠 延时脚本
  12. Combining Word and Entity Embeddings for Entity Linking
  13. 转:优秀的人,往往都具备这5种视角
  14. PIX for Windows使用
  15. winOS最新tensorflow不同版本要求与CUDA及CUDNN版本对应关系(12,2019.)
  16. Java中Arrays数组工具类的使用全解
  17. *** Cisco路由器
  18. QQ看点模块思维导图
  19. 某验通杀js版,流程各个验证码那对应的js分析,你确定不进来看看(无感)?
  20. 人工智能如何与教育结合,人工智能对教育的影响

热门文章

  1. 学习HTML的第二次课
  2. (转)一步一步Asp.Net MVC系列_权限管理之权限控制
  3. 详解 EnumWindows 与 EnumWindowsProc - 回复 SplendourChiang 的问题
  4. 如何将卷积神经网络中的全连接层变成卷积层
  5. Python: 自定义类对象序列化为Json串
  6. 小数(decimal,double) 截取两位或多位,不四舍五入
  7. Eclipse 常用技巧及常见问题解决
  8. CF1041F Ray in the tube构造_思维
  9. nyoj 4 ASCII码排序(set,multiset)
  10. UIDatePicker的属性与方法