एक सरणी को देखते हुए में subarrays बदलें,numpy
>>> n = 2
>>> a = numpy.array([[[1,1,1],[1,2,3],[1,3,4]]]*n)
>>> a
array([[[1, 1, 1],
[1, 2, 3],
[1, 3, 4]],
[[1, 1, 1],
[1, 2, 3],
[1, 3, 4]]])
मुझे पता है कि यह इतना तरह संक्षेप में यह मान बदलने के लिए संभव है,
>>> a[a==2] = 0
>>> a
array([[[1, 1, 1],
[1, 0, 3],
[1, 3, 4]],
[[1, 1, 1],
[1, 0, 3],
[1, 3, 4]]])
यह एक पूरी पंक्ति के लिए भी ऐसा ही करना संभव है सरणी में (अंतिम धुरी)? मुझे पता है कि a[a==[1,2,3]] = 11
11 के साथ मिलान करने वाले उपनगरों के सभी तत्वों को काम करेगा और प्रतिस्थापित करेगा, लेकिन मैं एक अलग सबएरे को प्रतिस्थापित करना चाहता हूं। मेरे अंतर्ज्ञान मुझसे कहता निम्नलिखित लिखने के लिए, लेकिन एक त्रुटि परिणाम,
>>> a[a==[1,2,3]] = [11,22,33]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: array is not broadcastable to correct shape
सारांश में, मैं क्या प्राप्त करना चाहते हैं है: है, में
array([[[1, 1, 1],
[11, 22, 33],
[1, 3, 4]],
[[1, 1, 1],
[11, 22, 33],
[1, 3, 4]]])
... और n के पाठ्यक्रम सामान्य, 2 से बहुत बड़ा, और अन्य अक्ष 3 से भी बड़े होते हैं, इसलिए यदि मुझे आवश्यकता नहीं है तो मैं उन पर लूप नहीं करना चाहता हूं।
अद्यतन: [1,2,3]
(अन्यथा मैं तलाश कर रहा हूँ जो कुछ भी) हमेशा सूचकांक 1. एक उदाहरण में नहीं है:
a = numpy.array([[[1,1,1],[1,2,3],[1,3,4]], [[1,2,3],[1,1,1],[1,3,4]]])
शानदार! मैंने 'कहाँ' के बारे में नहीं सोचा था। – Karol