关于Tensorflow 机器学习实战指南 上numpy的主要函数命令的试验

本博客的目的是试验机器学习中的数据生成过程中所涉及到numpy操作命令. 在此做个记录
<使用过程是用jupyter ,如果谁知道怎么从jupyter直接转成博客,能留言告知那无胜感谢>

#关于Tensorflow 机器学习实战指南 上numpy的主要函数命令的试验,为了能够清晰了解数据的结构和传递
#Tensorflow 和numpy的数据结构可以互相转换
import numpy as np
1. numpy.linspace
#首先是np.linspace(开始数值,结束数值,数值个数)
valuelinspace=np.linspace(20,29,10)
输出:
array([20., 21., 22., 23., 24., 25., 26., 27., 28., 29.])

#可以看出,输出是np格式的arrary([0,1,2,…]),而不是0., 1., 2., 3., 4., 5., 6., 7., 8., 9.]
#另外是在0-9之间产生值,即包括0和9
#那么valuelinspace 可索引的.比如.
valuelinspace[1] ,输出:
21.0

2. numpy.matrix
#下一个是np.matrix(数组), 即把数组转换为矩阵
valuematrix=np.matrix(valuelinspace)
输出:
matrix([[20., 21., 22., 23., 24., 25., 26., 27., 28., 29.]])

#可以看到array转换为矩阵,我们看看它的维数,是1X10的1行10列的矩阵
valuematrix.shape
(1, 10)

3. Numpy.transpose
#np.transpose(矩阵),转矩矩阵
valuetranspose=np.transpose(valuematrix)
valuetranspose.shape
(10, 1)

输出:
matrix([[20.],
[21.],
[22.],
[23.],
[24.],
[25.],
[26.],
[27.],
[28.],
[29.]])
4.numpy.repeat
#np.repeat(重复出现的值,出现的次数),产生相同元素的数组.
valuerepeat=np.repeat(12,10)
valuerepeat.shape
输出:
(10,)
repeatmatrix=np.matrix(valuerepeat)
输出:
matrix([[12, 12, 12, 12, 12, 12, 12, 12, 12, 12]])

5. numpy.column_stack
#np.column_stack((矩阵1,矩阵2),并“列”矩阵
#我们看看valuematrix,valuerepeat stack 之后会产生什么样的反应?
#valuematrix:matrix([[0., 1., 2., 3., 4., 5., 6., 7., 8., 9.]])
#repeatmatrix matrix([[12, 12, 12, 12, 12, 12, 12, 12, 12, 12]])
stackrescolumn=np.column_stack((valuematrix,repeatmatrix))
stackrescolumn.shape
(1, 20)
输出:
matrix([[20., 21., 22., 23., 24., 25., 26., 27., 28., 29., 12., 12., 12.,
12., 12., 12., 12., 12., 12., 12.]])
6. numpy.row_stack
#np.row_stack((矩阵1,矩阵2),并“行”矩阵
stackresrow=np.row_stack((valuematrix,repeatmatrix))
stackresrow.shape
输出:
(2, 10)

matrix([[20., 21., 22., 23., 24., 25., 26., 27., 28., 29.],
[12., 12., 12., 12., 12., 12., 12., 12., 12., 12.]])
7 .numpy.random.choice
#np.random.choice(num,size=get_number)
#从num 中随机取出get_number 个数值
#这个和数组一起使用,按照随机生成的顺序取出数组中的数值
valuechoice=np.random.choice(10,size=5)
输出:
array([3, 3, 8, 3, 4])

实际应用:

#下面就是按生成随机数取出数值的例子
#在随机批量训练中比较有效
valuex=valuelinspace[valuechoice]
输出:
array([23., 23., 28., 23., 24.])
#现在我们看看怎么从整个数据集中分出训练集合测试集
#假设数据集中包含10个样本数据.比如 len(数据集)
len=10
temp=range(len)
输出:
range(0, 10)
#那么每个样本的编号从0到9,作为一个集合{}
temp1=set(temp)
输出:
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
#现在从总数len随机取5个数据编号,其中5指的是取多少个.
#同样这个可以用于batch 批量训练的个数
temp2=np.random.choice(len,5)
输出:
array([6, 0, 8, 9, 7])
#转换为集合(即没有重复的值的集合),如果temp2中有相同的值,set 之后只保留1个
temp3=set(temp2)
输出:
{0, 6, 7, 8, 9}

#把整体的集合减去被选中的
temp4=temp1-temp3
输出:
{1, 2, 3, 4, 5}
#载转换为list
temp5=list(temp4)
输出:
[1, 2, 5, 6, 7, 9]
#随机生成10行3列的样本数据
data=np.random.normal(0,1,(10,3))
输出:
array([[ 0.53086915, -1.71762454, 1.10831003],
[-0.63743154, 0.02754105, -0.67666506],
[ 1.69977584, -0.33969117, 0.89870166],
[ 1.24898032, -1.50363802, 0.48186483],
[ 0.17043009, 0.66298405, -1.30214859],
[-0.3795909 , -0.73323142, 0.54891439],
[-2.20966675, -0.64647546, -1.77158127],
[ 0.69693956, 0.66329386, -0.71129064],
[-0.71508826, -1.05693917, -0.87022322],
[-0.50319345, -1.71936687, -0.49348108]])

#先取出其中5个
datasamples1=data[temp2]
输出:
array([[-2.20966675, -0.64647546, -1.77158127],
[ 0.53086915, -1.71762454, 1.10831003],
[-0.71508826, -1.05693917, -0.87022322],
[-0.50319345, -1.71936687, -0.49348108],
[ 0.69693956, 0.66329386, -0.71129064]])

#再取出剩下的5个
datasamples2=data[temp5]
datasamples2
array([[-0.63743154, 0.02754105, -0.67666506],
[ 1.69977584, -0.33969117, 0.89870166],
[-0.3795909 , -0.73323142, 0.54891439],
[-2.20966675, -0.64647546, -1.77158127],
[ 0.69693956, 0.66329386, -0.71129064],
[-0.50319345, -1.71936687, -0.49348108]])

#从中可以看出 data[list] 可以把按照list中排列的顺序取出样本

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值