যখন একবার এবং একবারে একবার এবং একবার সংযোজন করা হয় তখন np.append
আপনার অ্যারে ব্যবহার করা ভাল হওয়া উচিত। এই পদ্ধতির অপূর্ণতা হ'ল প্রতিবার যখন বলা হয় তখন একেবারে নতুন অ্যারের জন্য মেমরি বরাদ্দ করা হয়। উল্লেখযোগ্য পরিমাণে নমুনার জন্য অ্যারে বাড়ানোর সময় অ্যারের প্রাক-বরাদ্দ করা ভাল (যদি মোট আকারটি জানা থাকে) বা একটি তালিকায় যুক্ত হয়ে পরে অ্যারেতে রূপান্তর করা ভাল।
ব্যবহার np.append
:
b = np.array([0])
for k in range(int(10e4)):
b = np.append(b, k)
1.2 s ± 16.1 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
পাইথন তালিকা ব্যবহার করে পরে অ্যারে রূপান্তর করা:
d = [0]
for k in range(int(10e4)):
d.append(k)
f = np.array(d)
13.5 ms ± 277 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
প্রাক-বরাদ্দকারী নমপি অ্যারে:
e = np.zeros((n,))
for k in range(n):
e[k] = k
9.92 ms ± 752 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
যখন চূড়ান্ত আকারটি অজানা প্রাক-বরাদ্দ করা কঠিন, আমি 50 এর অংশগুলিতে প্রাক-বরাদ্দের চেষ্টা করেছিলাম তবে এটি কোনও তালিকা ব্যবহারের কাছাকাছি আসে নি।
85.1 ms ± 561 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
np.insert([1,2,3], 3, 1)