常用方法:
np.where(np.random.rand(N) < x)
关于这个这一串简单的代码,我们有必要先明白几个关键函数。
1)np.where()
numpy.where() 有两种用法:
- np.where(condition, x, y)
满足条件(condition),输出x,不满足输出y
输出结果为:
2. np.where(condition)
只有条件 (condition),没有x和y,则输出满足条件 (即非0) 元素的坐标 (等价于numpy.nonzero)。这里的坐标以tuple的形式给出,通常原数组有多少维,输出的tuple中就包含几个数组,分别对应符合条件元素的各维坐标。
输出结果为:
可以看到当数组变成二维时,输出的坐标值也变成二维,每个坐标索引分别对应输出元组的第一个和第二个元素。
**这里有一点需要注意,对于一维的数组,我们要直接获取索引值,需要将输出的元组看成(为什么是“看成”,因为当你对其进行索引,会发现超出索引范围)两个元素第一个元素为索引值,第二个元素为数组类型,如:
输出结果为:
**同理对于二维数组,正如上述所说,输出元组也是个二维元组,一部分对应的是行索引,另一部分对应的是列索引,如:
**
2)np.random.rand()
np.random.rand(d0,d1,d2……dn)
注:使用方法与np.random.randn()函数相同
作用:
通过本函数可以返回一个或一组服从“0~1”均匀分布的随机样本值。随机样本取值范围是[0,1),不包括1。
输出结果:
输出结果:
输出结果:
关于random的其他函数可以参考:
https://blog.csdn.net/weixin_42029738/article/details/81977492
所以回到最初的那行代码,我们可以很清楚的知道其作用就是返回随机生成的N个服从均匀分布的数中,小于0.1对应的索引值。