Код, показанный ниже, печатает форму, равную (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)