图像识别前置技术(numpy)

深度学习框架

Theano
TensorFlow
MXNet
Keras
PyTorch
Caffe

搭建图像识别开发环境

Anaconda

pip可以在任何环境中安装python包;
conda可以在conda环境中安装任何语言包。

conda

  1. 包的安装和管理

安装

conda install numpy

卸载

conda remove package_name

更新

conda update package_name

更新所有包

conda update --all

列出已安装的包

conda list

不知道找的包的确切名称

conda search search_term
如: conda search beautifulsoup
  1. 环境管理

创建不同的环境,每个环境是相互独立、互不干预的

%创建一个代码运行的环境:
conda create -n basic_env python=3.7 #创建一个名为basic_env的环境
source activate basic_env  #激活这个环境——Linux和macOS代码
activate basic_env   #激活这个环境——Windows代码

%创建另一个代码运行的环境:
conda create -n imgrecognition_env python=3.7 #创建一个名为imgrecognition_env的环境
source activate imgrecognition_env  #激活这个环境——Linux和macOS代码
activate imgrecognition_env   #激活这个环境——Windows代码

Pytorch的下载与安装

Numpy使用详解

Numpy(Numerical Python)是高性能科学计算和数据分析的基础包,提供了矩阵运算的功能。

创建数组

import numpy as np
vector = np.array([1,2,3,4])  #导入向量 
matrix = np.array([[1,'Tim'],[2,'Joey'],[3,'Johnny'],[4,'Frank']]) #导入矩阵

创建numpy数组

a = np.zeros(10)
a.dtype
a = np.zeros(10,dtype=int)
a
np.zeros(shape=(3,4))
a = np.ones((3,4))
np.full((3,5),121)  #创建了一个三行五列的矩阵,默认值为121
np.arange(0,20,2)  #[0,20) 步长=2
np.linspace(0,10,5) #[0,10] 5等分
np.random.randint(0,10,10)
np.random.randint(0,5,size=5)
np.random.randint(4,9,size=(3,5))

seed的作用:如果不想玩每次生成的随机数都不固定,那么用np.random.seed(1),随机种子使用数字1记录,这以后只要是用随机种子1生成的随机数就都是固定的。

np.random.random(10)   #生成0-1之间的浮点数,向量的长度为10
np.random.random((2,4)) #生成0-1之间的浮点数,二行四列的矩阵
np.random.normal(loc=0,scale=1,size=shape)  #正态分布 均值;标准差;类型

获取numpy属性

a = np.arange(15).reshape(3,5)
a.shape   #获取数组的行数与列数
a.ndim   #获取numpy数组的维度
a.reshape(15,-1)   #只要15行,列由计算机自己计算
a.reshape(-1,15)   #只要15列,行由计算机自己计算

Numpy数组索引

import numpy as np
matrix = np.array([[1,2,3],[20,30,40]])
print(matrix[0,1])

切片

import numpy as np
matrix = np.array([
    [1,2,3],
    [20,30,40],
    [35,45,55]
])
print(matrix[:,1])
print(matrix[:,0:2])
print(matrix[1:3,:])
print(matrix[1:3,0:2])

Numpy中的矩阵运算

加减乘除

import numpy as np
myones = np.ones([3,3])
myeye = np.eye(3)   #对角线值为1,其余值都为0的三行三列矩阵
myones-myeye

矩阵之间的点乘

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

矩阵的转置

print(b.T)

矩阵的逆

import numpy as np
import numpy.linalg as lg
A = np.array([[0,1],[2,3]])
invA = lg.inv(A)
print(invA)
print(A.dot(invA))

数据类型转换

vector = np.array(["1","2","3"])
vector = vector.astype(float)
vector

Numpy的统计计算方法

vector = np.array([5,10,15,20])
vector.sum()
matrix = np.array([
    [5,10,15],
    [20,10,30],
    [35,40,45]])
matrix.sum(axis=1)
matrix.sum(axis=0)

Numpy中的arg运算

argmax求一个array中最大值的下标;argmin求一个array中最小值的下标

np.argmax([1,2,6,3,2])
np.argmin([1,2,6,3,2])
x = np.arange(15)
print(x)
np.random.shuffle(x)  #随机打乱
print(x)
sx = np.argsort(x)    #从小到大排序,返回索引值
print(sx)

Fancylndexing

x = np.arange(15)
ind = [3,5,8]   #返回第3、5、8个元素
print(x[ind])
x = np.arange(15)
np.random.shuffle(x)
ind = np.array([[0,2],[1,3]])
print(x)
print(x[ind])
x = np.arange(16)
X = x.reshape(4,-16)
row = np.array([0,1,2])
col = np.array([1,2,3])
print(X[row,col])   #取三个点,(0,1),(1,2),(2,3)
print(X[1:3,col])

Numpy数组比较

import numpy as np
matrix = np.array([
    [5,10,15],
    [20,25,30],
    [35,40,45]
])
m = (matrix ==25)
print(m)
import numpy as np
matrix = np.array([
    [5,10,15],
    [20,25,30],
    [35,40,45]
])
second_column_25 = (matrix[:,1]==25)
print(second_column_25)
print(matrix[second_column_25,:])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值