Python:十分基础的简要入门和补充鱼书中的numpy和matplotlib

       最近在学习鱼书(深度学习入门),于是打算持续更新这个系列,由于自己有一定python基础,所以选择那些基础python没涉及到的东西摘抄并补充。在看书的过程中,感受到鱼书不愧于入门教程,十分的简洁,但带来许多问题,学的不是那么的深刻,于是想对于每一节的代码进行补充和自己的理解,当然还有一些容易报错的地方。
1.Numpy库

实现类似于matlab的矩阵运算 

import numpy
x = [1 , 2 , 3]
y = numpy.array(x)
print(y)
type(y) #class 'numpy.ndarray'
#numpy.ndarray数组更类似于 matlab中矩阵 可进行类似matlab中矩阵运算

#生成2*2矩阵
A = numpy.array([[1,2],[3,4]])
A.shape  #看几*几
A.dtype  #看数据类型
B= numpy.array([[4,3],[2,1]])
A+B
A-B
A*B # 对应元素相运算 不是线代里面矩阵运算 类似matlab中 .*

#广播 boardcast
B = numpy.array([10,20])
A = numpy.array([[1,2],[3,4]])
A*B #可以运算 相当于
B = numpy.array([[10,20],[10,20])
A*B  #结果与上面一样  called boardcast

#矩阵元素索引
x[0]   # 第一行
x[0][0] #第一行第一列 即我们日常说的 (1,1)
x[1][1] #第二行第二列  注意索引从0开始的
x[0,0] #第一行第一列 matlab既视感
x[:,0]  #第一列matlab既视感
x[:,1]  #第二列matlab既视感
X = x.flatten() #转换为一维数组
X[numpy.array([0,1,2,3])] #一维数组 使用ndarray类型一次访问多个元素
X >3 # 对每个元素进行判断 分别返回ndaray类型bool值 array([False,  True, False,  True, False,  True])
X[X>3] #返回满足条件的元素数组

补充真正的矩阵乘法

import numpy as np

a = np.array([[1,2],[3,4]])
b = np.array([[2,1],[3,4]])
print(a)
print(b)
#每个元素相乘 下面两个方法
a*b
numpy.multiply(a,b)

#真正意义上的矩阵乘法
np.matmul(a,b)
np.matmul(b,a)  #结果不同

广播图示(选自鱼书1.5numpy 15页)

 

2. matplotlib  库

用pyplot画图 , 下面介绍了 简单图形的绘制 绘制sin和cos图像

import numpy
import matplotlib.pyplot
x = numpy.arange(0,6,0.1)   #arange (开始 结束 步距 )
y = numpy.sin(x)
matplotlib.pyplot.plot(x,y)
matplotlib.pyplot.show()

#高级的画法 matlab既视感
y1 = numpy.sin(x)
y2 = numpy.cos(x)
matplotlib.pyplot.plot(x,y1,label='sin')
matplotlib.pyplot.plot(x,y2,linestyle='--',label='cos') #这里设置了线型linestyle
matplotlib.pyplot.xlabel('x') # y axis
matplotlib.pyplot.ylabel('y') # x axis
matplotlib.pyplot.title('x and y relationship')  # title
matplotlib.pyplot.legend(loc='upper right') #图例 loc表示位置
matplotlib.pyplot.show()

实现image读取并显示,注意图片格式一定一定要是png格式,有时候单单改后缀还不行,总之不是原本的png格式很容易报错

import matplotlib.pyplot as plt
from matplotlib.image import imread
img = imread(r'C:\Users\lenovo\Desktop\杂项\照片1.ara\show.png') #建议用绝对路径 
plt.imshow(img)
plt.show()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值