В соответствии с вашим вопросом в комментарии выше, я нашел рабочее решение. Тем не менее, я все еще не уверен, чего вы пытаетесь достичь, потому что мне не хватает контекста, в котором вы используете эту операцию. Но позвольте мне в любом случае сделать удар.
Таким образом, каждая итерация строки X
имеет собственную матрицу меток, заданную операцией to_categorical
. Поэтому я разработал Y
(что, я думаю, то, что вы хотите) в виде списка. Затем во время итерации я назначаю вновь созданную матрицу соответствующему элементу списка Y
.
# load dataset
dataframe = pandas.read_csv("data/development.csv")
dataset = dataframe.values
X = dataset[:,0:7].astype(int)
num_classes = np.max(X)
# Y is a list of matrices, one matrix for each row of X iterated below
Y = [None for _ in range(X.shape[0])]
encoder = LabelEncoder()
for i in [3,4,5,6]:
col = X[i]
# Get the number of classes present in that vector
num_classes = np.max(X[i])
encoder.fit(col)
encoded_col = encoder.transform(col)
# Set Y[i] to the new one-hot-encoded matrix
Y[i] = np_utils.to_categorical(encoded_col) # Error is here
print([y.shape for y in Y if y is not None])