1. ホーム
  2. python

[解決済み] NumPyの配列に余分な列を追加する方法

2022-03-25 07:47:10

質問

例えば、NumPyの配列があるとします。 a :

a = np.array([
    [1, 2, 3],
    [2, 3, 4]
    ])

そして、ゼロの列を追加して配列を得たいと思います。 b :

b = np.array([
    [1, 2, 3, 0],
    [2, 3, 4, 0]
    ])

NumPyでこれを簡単に行うにはどうしたらよいでしょうか?

どのように解決するのですか?

よりわかりやすく、起動も早い解決策は、次のようにすることだと思います。

import numpy as np
N = 10
a = np.random.rand(N,N)
b = np.zeros((N,N+1))
b[:,:-1] = a

そしてタイミング。

In [23]: N = 10

In [24]: a = np.random.rand(N,N)

In [25]: %timeit b = np.hstack((a,np.zeros((a.shape[0],1))))
10000 loops, best of 3: 19.6 us per loop

In [27]: %timeit b = np.zeros((a.shape[0],a.shape[1]+1)); b[:,:-1] = a
100000 loops, best of 3: 5.62 us per loop