मैं निश्चित आयाम के 2-टुपल्स की 2 डी सरणी बनाना चाहता हूं (10x10 कहें)।

उदाहरण के लिए:

[[(1,2), (1,2), (1,2)],
 [(1,2), (1,2), (1,2)],
 [(1,2), (1,2), (1,2)]]

इस सरणी को उत्पन्न करने के दो तरीके भी हैं:

  1. उपरोक्त उदाहरण की तरह एक सरणी जहां प्रत्येक तत्व एक ही टपल है
  2. एक सरणी जिसे मैं विशिष्ट टुपल्स के साथ पुनरावृत्त रूप से पॉप्युलेट करता हूं (संभवतः निश्चित आकार की खाली सरणी से शुरू होता है और फिर असाइनमेंट का उपयोग करता है)

मैं ऐसा कैसे कर पाऊंगा? #1 के लिए मैंने numpy.tiles का उपयोग करने का प्रयास किया:

>>> np.tile(np.array([1,2]), (3, 3))
array([[1, 2, 1, 2, 1, 2],
       [1, 2, 1, 2, 1, 2],
       [1, 2, 1, 2, 1, 2]])

लेकिन मैं इसे कॉलम में कॉपी नहीं कर सकता, कॉलम बस संयोजित हैं।

यानी इसके बजाय:

[[[1,2], [1,2], [1,2]],
 [[1,2], [1,2], [1,2]],
 [[1,2], [1,2], [1,2]]]
0
Dianne 19 मार्च 2020, 09:33

3 जवाब

सबसे बढ़िया उत्तर

आप numpy.full का उपयोग कर सकते हैं:

numpy.full((3, 3, 2), (1, 2))

आउटपुट:

array([[[1, 2],
        [1, 2],
        [1, 2]],

       [[1, 2],
        [1, 2],
        [1, 2]],

       [[1, 2],
        [1, 2],
        [1, 2]]])
2
kederrac 19 मार्च 2020, 09:48

numpy.zeros((3,3,2))

मुझे लगता है कि काम करेगा (लेकिन इसकी सूचियों को टुपल्स नहीं करता ...)

0
Joran Beasley 19 मार्च 2020, 09:44

<1> के लिए आप इस तरह उत्पन्न कर सकते हैं

[[(1,2)] * 3]*3
# get [[(1, 2), (1, 2), (1, 2)], [(1, 2), (1, 2), (1, 2)], [(1, 2), (1, 2), (1, 2)]]
0
gamesun 19 मार्च 2020, 09:39