जवाबों:
सुन्न पहले से ही सभी या सभी शून्य के सरणियों के निर्माण की अनुमति देता है:
जैसे 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
1.8 संस्करण के बाद से , हम fullसिंटैक्स के साथ एक ही परिणाम प्राप्त करने के लिए उपयोग कर सकते हैं जो अधिक स्पष्ट रूप से हमारे इरादे को दर्शाता है (जैसा कि fmonegaglia बताते हैं):
numpy.full((2, 2), True, dtype=bool)
अद्यतन: 16 जनवरी 2017
कम से कम संख्यात्मक संस्करण 1.12 के बाद से , 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, जो क्रमशः एरो और शून्य से भरा एरे बनाते हैं, एक वैकल्पिक 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/reference/generated/numpy.full.html देखें
np.full- एक वर्ष से अधिक पहले!