Oct-29-2018, 02:16 AM
(This post was last modified: Oct-29-2018, 12:14 PM by ichabod801.)
Im new in programming and I want to fill just the first column of a matrix with diferent random float within a certain range (low and high limits), but when I run my code it fills all the rows in the first column with the same value. Please help me! :)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import numpy as np import random res = np.zeros([ 5 , 2 ]) #empty matrix first_col_res = res[:, 0 ] #the first column of matrix res seen = set () def rand_teta(low, high,k): #k refers to the total random numbers: j = 0 while j < = k: x = random.uniform(low,high) j = j + 1 while x in seen: x = random.uniform(low,high) seen.add(x) first_col_res.fill(x) return res #out put example rand_teta( 1 , 2 , 3 ) |
Output:Out[88]:
array([[1.72762661, 0. ],
[1.72762661, 0. ],
[1.72762661, 0. ],
[1.72762661, 0. ],
[1.72762661, 0. ]])