টিএল; ডিআর : 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)
পাইথনমাপকাঠিতে