পাইথন-এ, আমি কীভাবে সমস্ত সত্য বা সমস্ত মিথ্যা দিয়ে ভরাট সালিশী আকারের একটি অদ্ভুত অ্যারে তৈরি করব?
পাইথন-এ, আমি কীভাবে সমস্ত সত্য বা সমস্ত মিথ্যা দিয়ে ভরাট সালিশী আকারের একটি অদ্ভুত অ্যারে তৈরি করব?
উত্তর:
নম্পিটি ইতিমধ্যে খুব সহজেই সমস্ত বা সমস্ত জিরোর অ্যারে তৈরি করতে দেয়:
যেমন 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 দেখুন