我想使用以下数组创建矩阵:
1111 20 1.5
1111 25 2.6
1111 26 3.7
1111 27 4.5
2222 20 5.4
2222 25 6.7
2222 26 7.2
2222 27 8.8
...........
3333 27 12.2
A中的每个值都需要映射到一次的所有值(A中的每个元素都将附加到b中的所有四个值),从那里,我希望得到的12,2矩阵成为12,3矩阵通过添加数组C
它应如下所示:
A = [random.randint(1250,14180) for x in range(len(5))]
C = [round(random.uniform(1.0,4.0),1) for x in range(len(15))]
我的第一个想法是使用一对for循环,但我在第一列中实现值时遇到很多麻烦
在我的实际代码中,值将按如下方式分配:
B = [2000,2500,2600,2700]
B将是非随机的
{{1}}
答案 0 :(得分:1)
看看:
weights_h = [[random.random() for e in inputs[0]] for e in range(hiden_neurons)]
但实际上,你应该使用numpy。
In [9]: numpy.random.random((3, 3))
Out[9]:
array([[ 0.37052381, 0.03463207, 0.10669077],
[ 0.05862909, 0.8515325 , 0.79809676],
[ 0.43203632, 0.54633635, 0.09076408]])
自:
答案 1 :(得分:0)
您可以使用itertools
包
import itertools
A = [1111,2222,3333]
B = [20,25,26,27]
C = [1.5,2.6,3.7,4.5,5.4,6.7,7.2,8.8,9.0,10.0,11.0,12.2]
# create the product of A and B, i.e., [(1111,20), (1111,25), ..., (3333,27)]
AB = itertools.product(A,B)
# zip with C
ABC = itertools.izip( AB, C )
# flatten sublists, since ABC is an iterator for [((1111,20),1.5), ..., ((3333,27),12,2)]
ABC = [ list(ab)+[c] for ab,c in ABC ]
print ABC
给出了
[[1111, 20, 1.5],
[1111, 25, 2.6],
[1111, 26, 3.7],
[1111, 27, 4.5],
[2222, 20, 5.4],
[2222, 25, 6.7],
[2222, 26, 7.2],
[2222, 27, 8.8],
[3333, 20, 9.0],
[3333, 25, 10.0],
[3333, 26, 11.0],
[3333, 27, 12.2]]