Форма массива numpy не работает правильно - PullRequest
0 голосов
/ 06 января 2019

Код, показанный ниже, печатает форму, равную (20, 50, 53). И это нормально, но у кого-нибудь есть идея, почему, когда я меняю только df.head(20), например, df.head(200), я получаю (200,)? Я давно борюсь с этой проблемой и понятия не имею, что происходит. В df у меня есть строки. Я не могу понять, почему, например, в этом примере форма не равна (200, 50, 53). Я понимаю, что в этом случае значение 53 может отличаться, потому что оно зависит от размера словаря, но я не могу понять, почему форма изменяется на (200,)? Буду очень признателен за помощь. Я пытался вставить как можно меньше исходного кода, но я хотел вставить каждую часть, которая может повлиять на конечный результат. Есть идеи, что не так?

inputList = []

for index, row in df.head(20).iterrows():

    inputList.append(list(row['i']))

inputList2 = []

for key in inputList:

    inputList2.append(key + [''] * (50 - len(key)))

dict = {}

for key in inputList2:

    for index, key2 in enumerate(key):

        if key2 in dict:

            key[index] = dict[key2]

        else:

            dict[key2] = len(dict)
            key[index] = dict[key2]

input_one_hot_encoded_list = []

for key in inputList2:

    one_hot_word_list = []

    for key2 in key:

        temp_list = [0] * len(dict)

        temp_list[key2] = 1

        one_hot_word_list.append(temp_list)


    input_one_hot_encoded_list.append(one_hot_word_list)


shape = array(input_one_hot_encoded_list).shape

print(shape)
...