पायथन मैट्रिक्स हेरफेर - प्रत्येक तत्व वर्ग

मैं एक मैट्रिक्स कैसे ले सकता हूं जैसे कि:

मैट्रिक्स = [[2,0,2], [0,2,0], [2,0,2]] और इसे [[4,0,4], [0,4,0], [4 में बदलें , 0,4]]

जहां सूची में सभी तत्व वर्ग बन जाते हैं? मैं सूची समझने की कोशिश कर रहा हूँ।

0

4 उत्तर

सूची समझ का उपयोग करना:

>>> lis = [[2,0,2],[0,2,0],[2,0,2]]
>>> [[y**2 for y in x] for x in lis]
[[4, 0, 4], [0, 4, 0], [4, 0, 4]]
5
जोड़ा
धन्यवाद !!!!!!!!!!
जोड़ा लेखक user2926999, स्रोत

सूची की समझ घोंसला जा सकती है:

sqd = [[elem*elem for elem in inner] for inner in outer]

In this case outer would be your matrix matrix

>>>> matrix = [[2,0,2],[0,2,0],[2,0,2]]
>>>> sqd = [[elem*elem for elem in inner] for inner in matrix]
>>>> sqd
[[4, 0, 4], [0, 4, 0], [4, 0, 4]]
2
जोड़ा
धन्यवाद !!!!!!!!!!
जोड़ा लेखक user2926999, स्रोत

numpy का उपयोग करें:

import numpy as np

matrix = [[2,0,2],[0,2,0],[2,0,2]]
np_matrix = np.array(matrix)
np_matrix**2

एक सूची समझ इस तरह दिख सकती है

matrix2 = [
    [e*e for e in l]
    for l in matrix
]
2
जोड़ा
एस/बेम्पी/numpy/जी :)
जोड़ा लेखक mgilson, स्रोत
np_matrix ** 2 जैसे मैट्रिक्स का विस्तार करना प्रत्येक तत्व को अलग से एक्सपोनेंट करने से एक अलग ऑपरेशन है।
जोड़ा लेखक Karl Knechtel, स्रोत
हाँ, बेवकूफ मैक ऑटो सुधार "सुविधा" :)
जोड़ा लेखक David Zwicker, स्रोत
नहीं, अगर आप एक numpy सरणी बनाने के लिए np.array हैं। आप सही हैं कि यह एक मैट्रिक्स वर्ग के अनुरूप होगा, अगर np.matrix का उपयोग किया गया था।
जोड़ा लेखक David Zwicker, स्रोत

यदि आपका मतलब है

matrix = [[2,0,2],[0,2,0],[2,0,2]]

सूचियों की एक सूची, फिर निम्नलिखित करें

import numpy as np
np.square(matrix)

यह आपको निम्नानुसार आउटपुट देता है:

array([[4, 0, 4],
       [0, 4, 0],
       [4, 0, 4]], dtype=int32)

हालांकि, यदि आप वास्तव में यह एक मैट्रिक्स होने का मतलब है, तो आपको पहले मैट्रिक्स बनाना होगा:

X = np.matrix('2 0 2; 0 2 0;  2 0 2')

और फिर ऊपर जैसा ही करते हैं, यानी,

np.square(X)

यह आपको वांछित आउटपुट देता है:

[[4 0 4]
 [0 4 0]
 [4 0 4]]
0
जोड़ा