কীভাবে সমস্ত সত্য বা সমস্ত মিথ্যা একটি অদ্ভুত অ্যারে তৈরি করবেন?


উত্তর:


281

নম্পিটি ইতিমধ্যে খুব সহজেই সমস্ত বা সমস্ত জিরোর অ্যারে তৈরি করতে দেয়:

যেমন 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)


37
প্রশ্ন পোস্ট হওয়ার সাথে সাথে আপনি কি নিজের প্রশ্নটির উত্তর দিয়েছেন?
M4rtini

26
@ এম 4 আর্টিনি এসও আপনাকে একই সাথে একটি প্রশ্ন এবং প্রশ্নের উত্তর পোস্ট করার অনুমতি দেয়।
মিক ম্যাককালাম

1
dtype = int প্রারম্ভিক অ্যারে অ্যারের উপাদান নির্বাচনের জন্য ব্যবহার করা যাবে না।
জিচাও

1
এইটা কাজ করে. তবে সাবধান হন কারণ @ জিচাও যেমন বলেছেন, তার a=np.ones((2,2))পরে a.dtype=boolকাজ করে না।
medley56

8
এখন একটি বিখ্যাত মেম: devhumor.com/media/…
ডাব্লুএলজিএফএক্স

93
numpy.full((2,2), True, dtype=bool)

12
+1 আমি মনে করি এটি গ্রহণযোগ্য উত্তর হওয়া উচিত। বুলগুলিতে ক্রেচার করার জন্য সংখ্যা দিয়ে পূরণ করার চেয়ে বুলগুলিতে একটি অ্যারে পূরণ করা বেশি স্বাভাবিক বলে মনে হয়।
জেলফির কাল্টসটহল

5
onesএবং zerosউত্তর পূর্ণসংখ্যার একটি অ্যারের গঠন করা হবে না। তারা সরাসরি বুলির একটি অ্যারে তৈরি করে।
ব্যবহারকারী 2357112

1
কি numpy.full((2,2), True)একটি সমতুল্য?
পাভেল

এটি ন্যালি 1.12+ এ রয়েছে। এটি পূর্ববর্তী সংস্করণগুলির ক্ষেত্রে প্রযোজ্য কিনা তা আমি মনে করি না
fmonegaglia

মারাত্মকভাবে dtype ডেটা থেকে আলাদা করা সম্ভব যখন সম্ভব? আমি রূপান্তরিত int 1করতে কোনও ভারী ভারী উত্তোলন করাকে কল্পনা করতে পারি না bool True
বলপয়েন্টবেন

30

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)

10

এটি যদি লেখার যোগ্য না হয় তবে আপনি এই জাতীয় অ্যারেটি তৈরি করতে পারেন 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অন্যান্য উত্তরগুলির মতোই।


3

সংস্করণ 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]]

0
>>> 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 দেখুন


6
ঠিক আছে, অন্য উত্তর ইতিমধ্যে ব্যবহার করে উত্তর দিয়েছে np.full- এক বছরেরও বেশি আগে!
এমসিফার্ট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.