টিএল; ডিআর : np.random.shuffle(ndarray)
কাজটি করতে পারে।
সুতরাং, আপনার ক্ষেত্রে
np.random.shuffle(DataFrame.values)
DataFrame
হুডের নীচে, ডেটা ধারক হিসাবে NumPy ndarray ব্যবহার করে। (আপনি ডেটা ফ্রেমের উত্স কোড থেকে চেক করতে পারেন )
সুতরাং আপনি যদি ব্যবহার করেন তবে np.random.shuffle()
এটি মাল্টি-ডাইমেনশনাল অ্যারের প্রথম অক্ষ বরাবর অ্যারেটিকে বদলে দেবে। তবে DataFrame
অবশেষের সূচকগুলি আনসফুলড রয়েছে।
যদিও, কিছু বিষয় বিবেচনা করার আছে।
- ফাংশন কিছুই দেয় না। আপনি যদি আসল অবজেক্টের একটি অনুলিপি রাখতে চান তবে ফাংশনে যাওয়ার আগে আপনাকে তা করতে হবে।
sklearn.utils.shuffle()
ব্যবহারকারী হিসাবে tj89 পরামর্শ হিসাবে, random_state
আউটপুট নিয়ন্ত্রণের জন্য অন্য বিকল্পের সাথে নাম নির্ধারণ করতে পারে। আপনি এটি ডেভ উদ্দেশ্যে করতে পারেন।
sklearn.utils.shuffle()
দ্রুততর. কিন্তু অক্ষ তথ্য (সূচক, কলাম) অদলবদল করবে DataFrame
বরাবর ndarray
এটা রয়েছে।
বেঞ্চমার্ক ফলাফল
মধ্যে sklearn.utils.shuffle()
এবং np.random.shuffle()
।
ndarray
nd = sklearn.utils.shuffle(nd)
0.10793248389381915 সেকেন্ড। 8x দ্রুত
np.random.shuffle(nd)
0.8897626010002568 সেকেন্ড
DataFrame
df = sklearn.utils.shuffle(df)
0.3183923360193148 সেকেন্ড 3x দ্রুত
np.random.shuffle(df.values)
0.9357550159329548 সেকেন্ড
উপসংহার: যদি অক্ষর তথ্য (সূচী, কলাম) নাদারের সাথে বরাবর পরিবর্তন করা ঠিক থাকে তবে ব্যবহার করুন sklearn.utils.shuffle()
। অন্যথায়, ব্যবহার করুনnp.random.shuffle()
ব্যবহৃত কোড
import timeit
setup = '''
import numpy as np
import pandas as pd
import sklearn
nd = np.random.random((1000, 100))
df = pd.DataFrame(nd)
'''
timeit.timeit('nd = sklearn.utils.shuffle(nd)', setup=setup, number=1000)
timeit.timeit('np.random.shuffle(nd)', setup=setup, number=1000)
timeit.timeit('df = sklearn.utils.shuffle(df)', setup=setup, number=1000)
timeit.timeit('np.random.shuffle(df.values)', setup=setup, number=1000)
পাইথনমাপকাঠিতে