numpy学习笔记

randint和repeat的用法,场景为生成规模为pop_size的二进制编码的基因

import numpy as np
self.pop = np.random.randint(*DNA_bound, size=(1, self.DNA_size)).repeat(pop_size, axis=0)

输出为

[[1 0 0 1 1]

[1 0 0 1 1]]

以下内容参考点击打开链接

①randint(low,high=None,size=None,dtype='l')

  • 返回随机整数,范围区间为[low,high),包含low,不包含high
  • 参数:low为最小值,high为最大值,size为数组维度大小,dtype为数据类型,默认的数据类型是np.int
  • high没有填写时,默认生成随机数的范围是[0,low)

rand和randn

②rand(d0,d1,…,dn)

  • rand函数根据给定维度生成[0,1)之间的数据,包含0,不包含1
  • dn表格每个维度
  • 返回值为指定维度的array
③randn与rand的不同之处在于其返回的是[0,1)之间服从标准正态分布的数。两者都是产生[0,1)之间的浮点数,参数只有维度,randint是产生定义区间之间的整数
a=np.random.rand(2,1)
print(a)
print(a.dtype)
输出为
[[ 0.27575047]
 [ 0.61517605]]
float64
 

④random.choice(a,size=None,replace=True,p=None)

  • 从给定的一维数组中生成随机数
  • 参数: a为一维数组类似数据或整数;size为数组维度;replace=True表示可以有重复的值;p为数组中的数据出现的概率
  • a为整数时,对应的一维数组为np.arange(a)
print(np.random.choice(3,size=(2,3),p=(0.6,0.2,0.2)))

输出为

 
[[0 0 0]
 [1 0 2]]

使用场景举例:

选择进行交叉的染色体

sub_pop_idx = np.random.choice(np.arange(0, self.pop_size), size=2, replace=False)

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值