পাইথন-এ, আমি কীভাবে সমস্ত সত্য বা সমস্ত মিথ্যা দিয়ে ভরাট সালিশী আকারের একটি অদ্ভুত অ্যারে তৈরি করব?
পাইথন-এ, আমি কীভাবে সমস্ত সত্য বা সমস্ত মিথ্যা দিয়ে ভরাট সালিশী আকারের একটি অদ্ভুত অ্যারে তৈরি করব?
উত্তর:
নম্পিটি ইতিমধ্যে খুব সহজেই সমস্ত বা সমস্ত জিরোর অ্যারে তৈরি করতে দেয়:
যেমন numpy.ones((2, 2))বাnumpy.zeros((2, 2))
যেহেতু Trueএবং Falseপাইথন মধ্যে প্রতিনিধিত্ব করা হয় যেমন 1এবং 0যথাক্রমে, আমরা কেবল ঐচ্ছিক ব্যবহার বুলিয়ান হওয়া উচিত এই অ্যারের নির্দিষ্ট করতে হবে dtypeপরামিতি এবং আমরা করা হয়।
numpy.ones((2, 2), dtype=bool)
আয়:
array([[ True, True],
[ True, True]], dtype=bool)
আপডেট: 30 অক্টোবর 2013
নমুনা সংস্করণ ১.৮ থেকে , আমরা fullসিনট্যাক্সের সাথে একই ফলাফল অর্জন করতে ব্যবহার করতে পারি যা আরও স্পষ্টভাবে আমাদের অভিপ্রায় দেখায় (যেমন fmonegaglia দেখায়):
numpy.full((2, 2), True, dtype=bool)
আপডেট: 16 জানুয়ারী 2017
কমপক্ষে অদ্ভুত সংস্করণ ১.১২ , যেহেতু fullস্বয়ংক্রিয়ভাবে dtypeদ্বিতীয় প্যারামিটারের ফলাফলগুলি কাস্ট করে , তাই আমরা কেবল লিখতে পারি:
numpy.full((2, 2), True)
a=np.ones((2,2))পরে a.dtype=boolকাজ করে না।
numpy.full((2,2), True, dtype=bool)
onesএবং zerosউত্তর পূর্ণসংখ্যার একটি অ্যারের গঠন করা হবে না। তারা সরাসরি বুলির একটি অ্যারে তৈরি করে।
numpy.full((2,2), True)একটি সমতুল্য?
int 1করতে কোনও ভারী ভারী উত্তোলন করাকে কল্পনা করতে পারি না bool True।
onesএবং zeros, যা যথাক্রমে এক এবং শূন্যগুলি পূর্ণ অ্যারে তৈরি করে, একটি al dtypeচ্ছিক প্যারামিটার গ্রহণ করে:
>>> numpy.ones((2, 2), dtype=bool)
array([[ True, True],
[ True, True]], dtype=bool)
>>> numpy.zeros((2, 2), dtype=bool)
array([[False, False],
[False, False]], dtype=bool)
এটি যদি লেখার যোগ্য না হয় তবে আপনি এই জাতীয় অ্যারেটি তৈরি করতে পারেন np.broadcast_to:
>>> import numpy as np
>>> np.broadcast_to(True, (2, 5))
array([[ True, True, True, True, True],
[ True, True, True, True, True]], dtype=bool)
আপনার যদি এটি লেখার প্রয়োজন হয় তবে আপনি খালি অ্যারেও তৈরি করতে পারেন এবং fillএটি নিজে:
>>> arr = np.empty((2, 5), dtype=bool)
>>> arr.fill(1)
>>> arr
array([[ True, True, True, True, True],
[ True, True, True, True, True]], dtype=bool)
এই পদ্ধতির শুধুমাত্র বিকল্প পরামর্শ। সাধারণভাবে আপনার সাথে থাকা উচিত np.full, np.zerosবা np.onesঅন্যান্য উত্তরগুলির মতোই।
সংস্করণ np.fullএবং np.onesসংস্করণের মধ্যে কোনও পার্থক্য আছে কিনা তাড়াতাড়ি দেখার জন্য একটি টাইমিট ছুটে গেলেন ।
উত্তর: না
import timeit
n_array, n_test = 1000, 10000
setup = f"import numpy as np; n = {n_array};"
print(f"np.ones: {timeit.timeit('np.ones((n, n), dtype=bool)', number=n_test, setup=setup)}s")
print(f"np.full: {timeit.timeit('np.full((n, n), True)', number=n_test, setup=setup)}s")
ফলাফল:
np.ones: 0.38416870904620737s
np.full: 0.38430388597771525s
গুরুত্বপূর্ণ
সম্পর্কে পোস্টটি সম্পর্কে np.empty(এবং আমি মন্তব্য করতে পারি না, কারণ আমার খ্যাতি খুব কম):
এটি করবেন না। np.emptyঅল- Trueঅ্যারে শুরু করার জন্য ব্যবহার করবেন না
অ্যারেটি খালি থাকায়, মেমরিটি লিখিত হয় না এবং কোনও গ্যারান্টি নেই, আপনার মানগুলি কী হবে, যেমন
>>> print(np.empty((4,4), dtype=bool))
[[ True True True True]
[ True True True True]
[ True True True True]
[ True True False False]]
>>> a = numpy.full((2,4), True, dtype=bool)
>>> a[1][3]
True
>>> a
array([[ True, True, True, True],
[ True, True, True, True]], dtype=bool)
numpy.full (আকার, স্কেলারের মান, প্রকার)। পাশ করা যায় এমন অন্যান্য যুক্তিও রয়েছে, এর নথির জন্য https://docs.scipy.org/doc/numpy/references/generated/numpy.full.html দেখুন