3

以下に示すように、値のリストを複数の配列セットに変更する必要があります。

list_train_data = [u'Class 1',
 u'Class 2',
 u'Class 3',
 u'Class 4',
 u'Class 5']

この値を次のような配列にする必要があります。

train_set = [['Class 1'],['Class 2'],['Class 3'],['Class 4'],['Class 5']]

可能であれば for ループを使用しないでください。

4

3 に答える 3

7

numpy タグを追加したので、numpy ソリューションを次に示します。

list_train_data = [u'Class 1',
 u'Class 2',
 u'Class 3',
 u'Class 4',
 u'Class 5']

import numpy as np
np.array(list_train_data, "O")[:, None]

結果は次のとおりです。

array([[u'Class 1'],
       [u'Class 2'],
       [u'Class 3'],
       [u'Class 4'],
       [u'Class 5']], dtype=object)
于 2013-10-28T11:19:48.390 に答える
7

リスト内包表記を使用します。

train_set = [[x] for x in list_train_data]

デモ:

>>> list_train_data = [u'Class 1', u'Class 2', u'Class 3', u'Class 4', u'Class 5']
>>> [[x] for x in list_train_data]
[[u'Class 1'], [u'Class 2'], [u'Class 3'], [u'Class 4'], [u'Class 5']]
于 2013-10-28T11:10:42.953 に答える
1

もちろん、ループを使用しない別の方法があります。それはmap関数を使用する方法です。

>>> list_train_data = ['Class 1',
                   'Class 2',
                   'Class 3',
                   'Class 4',
                   'Class 5']
>>> map(lambda x: [x], list_train_data)
[['Class 1'], ['Class 2'], ['Class 3'], ['Class 4'], ['Class 5']]

ループは一切ありません。ただし、これは LC よりも低速です。しかし、まだforループは見られません。

于 2013-10-28T11:40:40.703 に答える