简单介绍NumPy和Matplotlib两种外部库

运用简单的代码介绍二者的一些简单的功能

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.image import imread
#Numpy数组(np.array)可以生成N维数组,即可以生成任意维数的数组。数学上一般将一维数组称为向量,二维数组称为矩阵
#此外还可以将一般化之后的向量或者矩阵统称为张量。
def createNumpy():
    """
    生成numpy数组
    :return:
    """
    x = np.array([1.0,2.0,3.0])
    print(x)
    print(type(x))

def createNumpyAddAnddecay():
    """
    numpy的算数运算
    :return:
    """
    x = np.array([1.0,2.0,3.0])
    y = np.array([2.0,4.0,6.0])
    #需要注意的是当x和y的元素个数相同时,才可以对各个元素进行算术运算,如果元素个数不相同,程序就会报错。
    print(x+y)
    print(x-y)
    print(x*y)
    print(x/y)
    #numpy不仅可以进行element-wise(对应元素)运算,还可以和单一数值组合起来进行运算。
    # 即numpy各个元素和标量之间进行运算,这个功能被称为广播
    print(x/2.0)
def createNumpyNdices():
    """
    生成多维数组
    :return:
    """
    A = np.array([[1,2],[3,4]])
    print(A)
    #通过shape来展示出矩阵A的形状,假如学习过TensorFolw,会感觉很熟悉.(2,2)表示生成一个2*2的矩阵。
    print(A.shape)
    #同样通过dtype来查看矩阵元素的数据类型
    print(A.dtype)
    #多维矩阵的算术运算
    B = np.array([[3,0],[0,6]])
    #对应相加
    print(A+B)
    #对应相乘,切记在这里不是两个矩阵整体相乘,而是对应元素相乘。即A11*B11.
    print(A*B)
    #矩阵进行广播
    print(A*10)

def createBroadcast():
    """
    形状不同的数组之间能进行运算吗?我们在前面提到如果元素个数不相同那么就会报错。
    但是对于一维的数组来讲可以扩展至任意的大小进行计算。
    一个2*2矩阵和10相乘那么这个标量10就会被扩展成2*2的形状。这个功能称为广播
    因为NumPy有广播的功能,因此不同形状的数组之间也可以顺利的进行运算。
    :return:
    """
    A = np.array([[1,2],[3,4]])
    B = np.array([10,20])
    print(A*B)
def createVisttElement():
    """
    元素的索引从0开始,对各个元素的访问可按如下方式进行
    :return:
    """
    X = np.array([[51,55],[14,19],[0,4]])
    print(X)
    #第0行
    print(X[0])
    #第0行第0个元素
    print(X[0][0])
    #使用for循环语句访问各个元素,每一行输出对应的一行。
    for row in X:
        print(row)
    #NumPy还可以使用数组访问各个元素
    X = X.flatten()#将X转换为一维数组
    print(X)
    #获取索引为0,2,4的元素
    print(X[np.array([0,2,4])])
    #使用条件输出
    print(X[X>15])

def matplotlibFirst():
    """
    简单画图
    :return:
    """
    #生成数据
    x = np.arange(0,6,0.1)#以0.1为步长生成0到6的数据
    y = np.sin(x)

    #绘制图形,应用NumPy的sin函数np.sin(),将x,y的数据传给plt.plot,然后绘制图形。
    #最后通过ply.show进行显示
    plt.plot(x,y)
    plt.show()
def matplotlibSinAndCos():
    """
    在sin的基础上添加cos,并且增加标签
    :return:
    """
    #准备数据
    x = np.arange(0,6,0.1)
    y1 = np.sin(x)
    y2 = np.cos(x)
    #绘制图形
    plt.plot(x,y1,label="sin")
    plt.plot(x,y2,linestyle = "--",label = "cos")#用虚线绘制cos
    plt.xlabel("x")#x轴标签
    plt.ylabel("y")#y轴标签
    plt.title('sin&cos')#标题
    plt.legend()
    plt.show()

def matplotilibImgShow():
    """
    读取图片
    :return:
    """
    img = imread('lena.png')
    plt.imshow(img)

    plt.show()
def main():
    matplotilibImgShow()


if __name__ == "__main__":
    main()

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值