जिस सरणी को आप चाहते हैं उसे "शुरू" करने का तरीका है:
arr = np.empty((0,3), int)
जो एक खाली सरणी है लेकिन इसमें उचित आयाम है।
>>> arr
array([], shape=(0, 3), dtype=int64)
फिर अक्ष 0 के साथ जोड़ना सुनिश्चित करें:
arr = np.append(arr, np.array([[1,2,3]]), axis=0)
arr = np.append(arr, np.array([[4,5,6]]), axis=0)
लेकिन, @jonrsharpe सही है। वास्तव में, यदि आप एक लूप में शामिल होने जा रहे हैं, तो अपने पहले उदाहरण के रूप में किसी सूची में शामिल होना बहुत तेज़ होगा, फिर अंत में एक सुस्पष्ट सरणी में कनवर्ट करें, क्योंकि आप वास्तव में जैसे कि खतना का उपयोग नहीं कर रहे हैं पाश के दौरान इरादा:
In [210]: %%timeit
.....: l = []
.....: for i in xrange(1000):
.....: l.append([3*i+1,3*i+2,3*i+3])
.....: l = np.asarray(l)
.....:
1000 loops, best of 3: 1.18 ms per loop
In [211]: %%timeit
.....: a = np.empty((0,3), int)
.....: for i in xrange(1000):
.....: a = np.append(a, 3*i+np.array([[1,2,3]]), 0)
.....:
100 loops, best of 3: 18.5 ms per loop
In [214]: np.allclose(a, l)
Out[214]: True
इसे करने का संख्यात्मक तरीका आपके आवेदन पर निर्भर करता है, लेकिन यह अधिक पसंद किया जाएगा:
In [220]: timeit n = np.arange(1,3001).reshape(1000,3)
100000 loops, best of 3: 5.93 µs per loop
In [221]: np.allclose(a, n)
Out[221]: True