2016-07-01 2 views
-1

Я хочу, чтобы создать матрицу, используя следующие массивы:(псевдо) Случайным образом генерируемые Матрица

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] 

Каждое значение в необходимости быть соотнесены со всеми значениями в ВЕ один раз (каждый элемент А будет присоединен к все четыре значения в б), а оттуда, я хочу, чтобы в результате матрица 12,2 стать матрицей 12,3 добавления массива C

Он должен выглядеть следующим образом:

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 

Моей первой идея заключается в использовании пары для петель, но у меня много проблем, реализующих значение в 1-м столбце

В моем фактическом коде значения будут назначать следующий образом:

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))] 

B будет не случайный

B = [2000,2500,2600,2700] 
+0

где это случайное? если он имеет фиксированное число во вводе? вы должны использовать random (https://docs.python.org/2/library/random.html) – Destrif

+0

Для первой части вы можете использовать itertools.product, но я не вижу здесь ничего случайного, так что трудно быть уверенным, что это то, что тебе нужно. – polku

+0

Я просто привел несколько массивов примеров, но когда я делаю их в своем коде, я использую random.randint() для создания значений в A, B, C – user6538795

ответ

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]] 
+0

Это очень полезно, спасибо. – user6538795

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]]) 

От:

Simple way to create matrix of random numbers