Как я могу создать список точек (двумерных массивов) в Python, используя два списка случайных величин - PullRequest
0 голосов
/ 25 октября 2018

Я пытаюсь тренировать Перцептрон, используя некоторые случайные данные.Кажется, мои данные не соответствуют формату входных данных для класса Perceptron:

Вот способ, которым я создаю свои данные:

Q1 = 100
X1 = 1 + 0.5*np.random.randn(Q1,1)
X2 = 1 + 0.5*np.random.randn(Q1,1)


my_training_inputs = np.array(list(zip(X1, X2)))
my_labels = np.ones((len(X1),))

Вот формат, который я должен подготовитьмои данные выше:

training_inputs = []
training_inputs.append(np.array([1, 1]))
training_inputs.append(np.array([1, 0]))
training_inputs.append(np.array([0, 1]))
training_inputs.append(np.array([0, 0]))

labels = np.array([1, 0, 0, 0])

Как мне подготовить мои данные в этом формате?

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

Использование np.concatenate:

Q1 = 100
X1 = 1 + 0.5*np.random.randn(Q1,1)
X2 = 1 + 0.5*np.random.randn(Q1,1)

my_training_inputs = np.concatenate((X1,X2), axis=1)
my_labels = np.ones((len(X1),))   

print(my_labels.shape)
#(100,)

print(my_training_inputs.shape)
#(100, 2)

#print the 4 first samples (inputs)
print(my_training_inputs[0:4])
#array([[0.754558  , 0.76998302],
#       [0.0716354 , 1.34796436],
#       [1.25007314, 1.61079584],
#       [0.74931903, 0.9899375 ]])
0 голосов
/ 25 октября 2018

Вы не должны добавлять скобки в определения X1 и X2, потому что np.random.randn(Q1,1) уже является массивом.Просто замените определение X1 и X2 следующим:

X1 = 1 + 0.5*np.random.randn(Q1,1)
X2 = 1 + 0.5*np.random.randn(Q1,1)
...