Mr.kang之真经求取
                                        ---积跬步,至千里

入门

专业基础概念

  1.Anaconda : Python用于深度学习的一站式开发环境,拥有Python的用于深度学习的库,方便简洁

  2.Opencv:(open source computer vision library) 开源计算机视觉库,实现了图像处理和计算机视觉方面的很多通用算法

  3.Tensorflow :人工智能学习系统,语音,图片识别,tensorflow是一个基于数据流编程的符号数学系统,被广泛用于各类机器学习算法的编程实现

  4.Numpy:  numpy系统是Python的一种开源的计算扩展,可以用来存储和处理大型矩阵,计算过程相比python自身的嵌套列表的结构要高效的多

  5.Matplotlib: matplotlib是python的一个2D绘图库,它可以拷贝格式和跨平台的交互环境生成出版质量级别的图形,可以绘制直方图,功率谱,条形图,错误图,散点图等

1.tensorflow

  1.常用api  

    import tensorflow as tf   # tensorflow 模块的引入

    tf.constant()         # 常量的定义

    tf.variable(0, name='num')          # 变量的定义, 第一个参数为变量的初始值,第二个参数是变量的name

    tf.Session()          # 上下文的创建

    sess.close()         # 关闭session

    print(sess.run())      # 内容的打印输出

    tf.assign(data1, data2)    # 将data2中的值赋值为data1, 返回值为赋值后data1的值

    tf.get_default_session().run(variables)    # 获取默认session打印变量的值

    variables.eval()             # 变量获取默认session直接打印出值

    tf.placeholder()           # 用于声明一个具体数据类型的变量

 

 

  实例一:使用tensorflow实现“hello world” 的打印

import tensorflow as tf

hello = tf.constant('hello world')   # 定义字符串
sess = tf.Session()    # 创建上下文
print(sess.run(hello))   # 打印
View Code

  注意: 1.如果程序中定义了变量,那么就一定需要将变量初始化

  实例二:初始化变量

import tensorflow as tf

number = tf.Variable(0, name='num')  # 定义一个变量
init = tf.global_variables_initializer()  # 初始化程序中的所有变量
with tf.Session() as sess:
    sess.run(init)
View Code

  实例三:变量重新赋值,获取默认session,打印数值

import tensorflow as tf

data1 = tf.constant(3)
data2 = tf.Variable(2)

dataAdd = tf.add(data1, data2)

dataCopy = tf.assign(data2, dataAdd)   # 将dataAdd中的值赋值给data2

init = tf.global_variables_initializer()   # 初始化程序中的变量
with tf.Session() as sess:
    sess.run(init)
    print(sess.run(dataCopy))
    print(dataCopy.eval())          # 获取默认的session,打印出datacopy的值
    print(tf.get_default_session().run(dataCopy))
View Code

   实例四:placeholder的使用

import tensorflow as tf

# placeholder的使用
data1 = tf.placeholder(tf.int32)
data2 = tf.placeholder(tf.int32)

dataAdd = data1 + data2
with tf.Session() as sess:
    print(sess.run(dataAdd, feed_dict={data1: 1, data2: 3}))
View Code

 

  

  2.常量与变量的四则运算

    tf.add(data1, data2)    # 加法

    tf.subtract()                # 减法

    tf.multiply()                # 乘法

    tf.divide()               # 除法

  3.矩阵基础

    1.矩阵的定义和特殊矩阵的初始化

      tf.constant([[1, 2], [3, 4]])   # 定义一个两行两列的矩阵

      tf.zeros([2, 3])                # 生成指定行列的空矩阵

      tf.ones ([2, 3])                     # 生成指定行列的全一矩阵

      tf.fill([2, 3], 1)                 # 生成指定行列的指定填充矩阵

      tf.zeros_like(mat)        # 生成一个和mat维度相同的空矩阵

      tf.random_uniform([2, 3], 1, 5)    # 在1到5之间随机选取填充指定维度的矩阵

    2.矩阵的运算

      。若矩阵之间进行加法运算,则必须保证,两个矩阵的行和列必须是一样的

      。若矩阵之间进行乘法运算,则必须保证, 第一个矩阵的列和第二个矩阵的行是一样的

      tf.add(data1, data2)    # 两个矩阵之间进行加法运算

      tf.matmul(data1, data2)    # 两个矩阵之间进行矩阵乘法运算

      tf.multiply(data1, data2)    # 两个矩阵之间进行普通的乘法运算

2.opencv

  import cv2   # opencv的引入

  cv2.imread()    # 实现图片的读取,返回值为图片的数据内容,第一个参数是图片的绝对路径,第二个参数(0, 1),0为灰度图片,1为彩色图片

  cv2.imshow()    # 实现图片的显示,第一个参数为窗体名称,第二个参数是要显示图片的数据内容

  cv2.waitKey()   # 实现程序的stop

  cv2.write()     # 图片的写入,第一个参数是图片的名称,第二个参数图片的格式(jpg,png),第三个参数可以控制图片的文件的大小(压缩),jpg有损压缩,png无损压缩

  实例一:实现图片的读取和显示

import cv2

img_data = cv2.imread('imgs/image0.jpg', 1)   # 获取到图片的数据内容
cv2.imshow('img', img_data)   # 显示图片
cv2.waitKey()    # 为了图片一直显示在桌面上,所以我们需要将这个进程暂时的stop一下
View Code

  实例二:实现图片的写入,有损压缩

cv2.imwrite('1.jpg', jpg, [cv2.IMWRITE_JPEG_QUALITY, 50])
View Code

   实例三:对像素的读写操作  , 注意:opencv读取出来的像素值是bgr顺序的

import cv2

img_data = cv2.imread('imgs/image0.jpg', 1)
(b, g, r) = img_data[100, 100]   # 读取指定像素的内容
print(b, g, r)  

img_data[100, 100] = (0, 0, 255)   # 给指定像素写入指定的内容
View Code

 3.numpy

   1.常用api

    np.array([[1, 2], [3, 4]])    # 使用numpy定义一个2*2的矩阵

    np.zeros([2, 3])          # 定义指定维度的空矩阵

    np.ones([2, 3])            # 定义指定维度的全一矩阵

    np.linspace(1, 15, 15)   # 可以定义一个呈线性增长的矩阵,这代码范围从1, 15, 一共有15个数据

  

4.matplotlib

  。模块的导入方法: import matplotlib.pyplot as plt

  1.绘制折线图

    需要x轴数据, y轴数据, 折线图线的颜色‘r’, 折线图的线的粗细(lw= )

    plt.plot(x, y, 'r', lw=2)             # 绘制折线图

  实例一:绘制折线图

import matplotlib.pyplot as plt
import numpy as np

x = np.array([1, 2, 3, 4, 5, 6])  # 定义x的值
y = np.array([3, 45, 54, 23, 5, 55])   # 定义y的值

plt.plot(x, y, 'r', lw=2)       # 绘制折线图

plt.show()    # 显示折线图
View Code

 

  

2.绘制柱状图

    需要x轴数据,y轴数据,柱状图的粗细, 柱状图的颜色深浅(透明度, 取值范围【0, 1】), 柱状图的颜色,

    plt.bar(x, y, 0.2, alpha=0.2, color=‘r’)             # 绘制柱状图

  实例二:绘制柱状图

import matplotlib.pyplot as plt
import numpy as np

x = np.array([1, 2, 3, 4, 5, 6])  # 定义x的值
y = np.array([3, 45, 54, 23, 5, 55])   # 定义y的值

plt.bar(x, y, 0.2, alpha=0.3, color='b')  # 绘制柱状图
plt.show()   # 展示绘制好的柱状图
View Code

 

 实例三:实现股票数据日线的绘制

# 股票数据日线的绘制
import numpy as np
import matplotlib.pyplot as plt

startPrice = np.array([20.12, 12.34, 23.33, 54.09, 33.12])  # 五天中每天的开盘价格
endPrice = np.array([11.44, 41.45, 12.21, 90.32, 45.03])    # 对应开盘价格的五天收盘价格
dataNum = np.linspace(1, 5, 5)   # 生成从一到五天的日期

# print(dataNum)
# 开始是使用折线图的方式画出柱状图, 需要二维的x值和二维的y值
plt.figure()
for i in range(5):
    dataMat = np.zeros([2])
    dataMat[0] = dataNum[i]
    dataMat[1] = dataNum[i]

    priceMat = np.zeros([2])
    priceMat[0] = startPrice[i]  # 当天的开盘价格
    priceMat[1] = endPrice[i]  # 当天的收盘价格

    if startPrice[i] > endPrice[i]:  # 判断当天的开盘价格和收盘价格的大小
        plt.plot(dataMat, priceMat, 'r', lw=5)
    else:
        plt.plot(dataMat, priceMat, 'g', lw=5)

    # 绘图完毕
plt.show()
View Code

  

posted @ 2019-02-03 10:12  Mrs.kang  阅读(330)  评论(0编辑  收藏  举报