किसी दिए गए आइटम के कॉलम और पंक्ति अनुक्रमणिका (वाई और एक्स) को एक numpy सरणी में कैसे प्राप्त करें - पायथन, सरणी, numpy

उदाहरण के लिए, मेरे पास नीचे के रूप में एक 3x3 सुन्न सरणी है

a=numpy.array([3,2,1],
[2,5,6],
[4,7,8])

यदि दिया गया मूल्य 8 है, तो मुझे कुछ मिलना चाहिए जैसे कि [3,3] यदि दिया गया मान 2 है, तो मुझे [0,1] और [1,0] प्राप्त करना चाहिए क्योंकि सरणी में दो "2" हैं।

मुझे पता है कि यह लूपिंग के साथ सीधा है, लेकिन मैं सोच रहा था कि कोड के न्यूनतम लाइनों के साथ इसे हल करने के लिए एक कुशल "पायथोनिक" तरीका (या किसी फैंसी सुन्न समारोह के साथ) है।

उत्तर:

जवाब के लिए 3 № 1

आप उपयोग कर सकते हैं np.argwhere:

import numpy as np

a = np.array([[3, 2, 1],
[2, 5, 6],
[4, 7, 8]])

print np.argwhere(a == 8)

>>> [[2 2]]

print np.argwhere(a == 2)

>>> [[0 1]
[1 0]]

उत्तर № 2 के लिए 1

यह आपको tuple में सरणी का सूचकांक देगा।

np.where(a == 3) # (array([0]), array([0]))
np.where(a == 2) # (array([0, 1]), array([1, 0]))

संबंधित सवाल
सबसे लोकप्रिय