0
numpyの高速索引索引を検索すると、実行中のコードが遅くなります(np.take()
)。私はnp.reshape()
とorder=F/C
を試してみましたが改善はありません。ダブルtranspose
なしでうまく動作しますが、彼らとoperator
Pythonはnp.take().
Numpy:配列の空想的なインデックス作成を改善する
p = np.random.randn(3500, 51)
rows = np.asarray(range(p.shape[0]))
cols = np.asarray([1,2,3,4,5,6,7,8,9,10,15,20,25,30,40,50])
%timeit p[rows][:, cols]
%timeit p.take(cols, axis = 1)
%timeit np.asarray(operator.itemgetter(*cols)(p.T)).T
1000 loops, best of 3: 301 µs per loop
10000 loops, best of 3: 132 µs per loop
10000 loops, best of 3: 135 µs per loop
カラムをスライスしているようですが、 'p [:、cols]'はどうですか?それ以上のことはないと思ってはいけません。 – Divakar