Как сохранить значение в массиве с помощью Python - PullRequest
0 голосов
/ 17 октября 2018

Я хочу сохранить значение в массив, используя numpy.Все работает нормально, но когда я пытаюсь сохранить значения в массиве, я получаю сообщение об ошибке.Вот что я сделал до сих пор:

import numpy as np
batchSize = 2
numClasses = 2
maxSeqLength = 10 #Maximum length of sentence

labels = []
arr = np.zeros([batchSize, maxSeqLength])

for i in range(batchSize):
    num = randint(1,17)
    labels.append([1,0])
    # print(num)
    print(labels)
    print(ids[num-1:num])
    arr[i]=ids[num-1:num]

Когда я печатаю матрицу ids, я получаю эти значения

[[1, 0]]
[[   nan 11501.   420.  5842.    nan  4245.    nan     0.     0.     0.
      0.     0.     0.     0.     0.     0.     0.     0.     0.     0.
      0.     0.     0.     0.     0.     0.     0.     0.     0.     0.]]
[[1, 0], [1, 0]]
[[   nan    nan  7624.  3936. 11501.  8064.  5842.    nan    nan  1087.
     37. 11516.    nan 10936.    nan 12111.     0.     0.     0.     0.
      0.     0.     0.     0.     0.     0.     0.     0.     0.     0.]]

, и это ошибка, которую я получаю при сохранениимассив arr

could not broadcast input array from shape (30) into shape (10)

1 Ответ

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

Ошибка довольно очевидна, вы пытаетесь вставить массив из 30 элементов в массив из 10 элементов.Это означает, что arr[i] имеет maxSeqLength=10, в то время как ids[num-1:num] имеет другое length=30

. Это можно исправить, установив maxSeqLength=30 перед созданием матрицы np.zero.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...