1

dataset行が異なるリストで構成されるリストを、各行がリストnewDatasetの異なるリストのすべての要素で構成される1つのリストで構成されるリストに変換したいと思いdatasetます。

dataset = [
[[2,3,1],[1,2,9],[1,3,8]],
[[1,4,1],[1,2,10],[9,3,1]],
[[1,4,0],[1,4,9],[2,5,8]],
]

newDataset = [
[2, 3, 1, 1, 2, 9, 1, 3, 8],
[1, 4, 1, 1, 2, 10, 9, 3, 1],
[1, 4, 0, 1, 4, 9, 2, 5, 8]
]

次のコード行を思いつきました。

from itertools import chain
newDataset = [list(chain(*x)) for x in dataset]

しかし、もっとpythonicな方法があると思いますか?

newDataset2別の関連する質問:各行が行の異なるリストの最初の要素で構成される をどのように生成できますか?

newDataset2 = [
[2,1,1],
[1,1,9],
[1,1,2],
]
4

3 に答える 3

3
itertools.chain(*x)

としてより適切に表現されます。

itertools.chain.from_iterable(x)

しかし、それ以外は問題ありません。

また、

>>> [[x[0] for x in y] for y in dataset]
[[2, 1, 1], [1, 1, 9], [1, 1, 2]]
于 2012-06-20T11:07:20.837 に答える
2
import numpy as np
np.array(dataset).reshape(3,9)

戻り値

array([[ 2,  3,  1,  1,  2,  9,  1,  3,  8],
       [ 1,  4,  1,  1,  2, 10,  9,  3,  1],
       [ 1,  4,  0,  1,  4,  9,  2,  5,  8]])

2番目のもの:

np.array(dataset)[:,:,0]

戻り値

array([[2, 1, 1],
       [1, 1, 9],
       [1, 1, 2]])
于 2012-06-20T11:09:09.323 に答える
1
dataset = [
[[2,3,1],[1,2,9],[1,3,8]],
[[1,4,1],[1,2,10],[9,3,1]],
[[1,4,0],[1,4,9],[2,5,8]],
]


print [[cell[0] for cell in row] for row in dataset]
于 2012-06-20T11:08:10.223 に答える