Добавление списка на основе столбца, из которого поступают данные - PullRequest
1 голос
/ 16 февраля 2020

Я пытаюсь добавить двоичный массив numpy в другой массив numpy для подачи в нейронную сеть. Двоичный список зависит от столбца, из которого поступает массив. Например, массив из третьего столбца: [0 0 1 0 0 0 0 0 0].

. Вот пример:

Данные (список массивов):

[[0, 1, 1, 1, 0], [0, 1, 0, 0, 1], [1, 0, 0, 0, 0]]

Давайте скажем, что первые два элемента пришли из первого столбца кадра данных, а третий элемент - из второго столбца. После добавления двоичного массива данные будут выглядеть примерно так:

 [([0, 1, 1, 1, 0], 
[1 0 0 0 0 0 0 0 0]), 

([0, 1, 0, 0, 1],
[1 0 0 0 0 0 0 0 0]), 

([1, 0, 0, 0, 0],
[0 1 0 0 0 0 0 0 0])]

Для контекста я изначально тренировался только на одном столбце данных, однако я хочу иметь возможность тренироваться на всем кадре данных сейчас же.

Существует ли способ автоматического добавления этого массива в мои данные в зависимости от столбца, из которого поступают данные, чтобы нейронная сеть могла тренироваться на всем наборе данных, а не просто переходить от столбца к столбцу?

Кроме того, для этого потребуется два входных слоя или только один?

1 Ответ

2 голосов
/ 17 февраля 2020

Может быть, вы могли бы добавить более конкретный пример к вашему вопросу. Но в любом случае, это то, что вы ожидаете?

In [1]: import pandas as pd                                                                                                                                                                           

In [2]: df = pd.DataFrame({'col1': [[0,0,1], [1,1,1]], 'col2': [[1,1,0],[0,0,0]]})                                                                                                                    

In [3]: df                                                                                                                                                                                            
Out[3]: 
        col1       col2
0  [0, 0, 1]  [1, 1, 0]
1  [1, 1, 1]  [0, 0, 0]

In [4]: for col_index, col_name in enumerate(df.columns): 
   ...:     array_to_append = [0] * len(df.columns) 
   ...:     array_to_append[col_index] = 1 
   ...:     df[col_name] = df[col_name].map(lambda x: (x, array_to_append)) 
   ...:                                                                                                                                                                                               

In [5]: df                                                                                                                                                                                            
Out[5]: 
                  col1                 col2
0  ([0, 0, 1], [1, 0])  ([1, 1, 0], [0, 1])
1  ([1, 1, 1], [1, 0])  ([0, 0, 0], [0, 1])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...