私はndarray
のravel
またはflatten
方法をお勧めします。
>>> a = numpy.arange(9).reshape(3, 3)
>>> a.ravel()
array([0, 1, 2, 3, 4, 5, 6, 7, 8])
ravel
それが持っていない限り、それはコピーを返さないためconcatenate
とflatten
よりも高速です:
>>> a.ravel()[5] = 99
>>> a
array([[ 0, 1, 2],
[ 3, 4, 99],
[ 6, 7, 8]])
>>> a.flatten()[5] = 77
>>> a
array([[ 0, 1, 2],
[ 3, 4, 99],
[ 6, 7, 8]])
しかし、あなたは上に示したメモリの共有を避けるために、コピーが必要な場合は、あなたの」
>>> %timeit a.ravel()
1000000 loops, best of 3: 468 ns per loop
>>> %timeit a.flatten()
1000000 loops, best of 3: 1.42 us per loop
>>> %timeit numpy.concatenate(a)
100000 loops, best of 3: 2.26 us per loop
N:あなたはこれらのタイミングから見ることができるように、concatenate
よりflatten
を使用してオフに再より良いですOTEはまた、あなたはあなたの出力はreshape
と(1行2次元配列)を示し正確な結果を達成できること:
>>> a = numpy.arange(9).reshape(3, 3)
>>> a.reshape(1, -1)
array([[0, 1, 2, 3, 4, 5, 6, 7, 8]])
>>> %timeit a.reshape(1, -1)
1000000 loops, best of 3: 736 ns per loop
@senderleを - ラヴェルはあまりにも私の最初の本能だった(おかげピエールGMを!) 。答えとして投稿して、私はうれしくupvoteします。 – mgilson