题目:在建立的5*5的零数组中随机加入p个1
两个问题 第一个:如何加入(利用put函数)
第二个:随机(利用np.random.choice函数)
1、首先看一下np.put函数的格式
np.put(a, ind, v, mode=‘raise’)
参数解释 :1、a 就是目标数组 这里就是5*5的零数组
2、ind是目标数组的位置
3、v是你要加入的值
注意:在此函数中a是扁平化的(无论是一维还是二维)
举例
a = np.array([0,5,6,75,6])
np.put(a, [0, 2], [-44, -55])
结果
array([-44, 5, -55, 75, 6])/就是把0和2位置上的值替换成了-44和-55
2、看一下np.random.choice()的格式
numpy.random.choice(a, size=None, replace=True, p=None)
参数解释:1、从a(只要是ndarray都可以,但必须是一维的)中随机抽取数字
2、size:取得数字的个数
2、replace:True表示可以取相同数字,False表示不可以取相同数字
3、数组p:描述数组a中每一个元素取得的概率。
举例 np.random.choice(range(25),3,replace = False)//从25的范围内去3个不同的数
输出:array([21, 4, 0])
本题代码
p = 3
z = np.zeros((5,5))///建立一个二维5*5的数组
np.put(z,np.random.choice(range(25),p,replace = False),1)
解释:np.random.choice(range(25),p,replace = False)从25中取3个不重复的数字
再将1插入z中相应的位置