0

Rにはrbind関数があることを知っています:

list = c(1,2,3)
blah = NULL
blah = rbind(blah,list)

これをPythonでどのように複製しますか?私はあなたが書くことができることを知っています:

a = NULL
b= array([1,2,3])
for i in range(100):
 a = np.vstack((a,b))

a=NULLしかし、その場で何を書くべきかわかりません。私は基本的にループしてテーブルに行を追加しています。これを行う最も効率的な方法は何ですか?

4

2 に答える 2

1

numpy では、最初にスペースを事前に割り当ててからループしてそのスペースを埋める方が、連続して大きな配列を動的に作成するよりも効率的です。たとえば、サイズが 500 の場合、次のようになります。

a = np.empty((500, b.shape[0]))

次に、必要に応じてループして値を入力します。

for i in range(500):
    a[i,:] = ...

本当に b を 500 回繰り返したい場合は、次のようにします。

In [1]: import numpy as np

In [2]: b = np.array([1,2,3])

In [3]: a = np.empty((500, b.shape[0]))

In [4]: a[:] = b

In [5]: a[0,:] == b
Out[5]: array([ True,  True,  True], dtype=bool)
于 2013-03-27T22:16:04.220 に答える