किसी स्लाइस ऑब्जेक्ट के माध्यम से 2d numpy ऐरे को अपडेट करें [डुप्लिकेट]

Dec 02 2020

तो मैं सामान्य रूप से सुन्न और प्रोग्रामिंग के लिए काफी नया हूं, और मैं जीत रहा था यदि किसी अन्य सरणी के माध्यम से एक खस्ता सरणी को बदलने का कोई तरीका है जो एक टुकड़ा है, उदाहरण के लिए हमारे पास:

>>> import numpy as np
>>> a = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]])
>>> a
array([[ 1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10],
       [11, 12, 13, 14, 15]])

और अब मैं '8' सहित सभी मानों को 2 से गुणा करना चाहता हूं, इसलिए मैं एक स्लाइस b लेता हूं और इसे इस तरह से बदलता हूं:

>>> y, x = 1, 2
>>> b = a[y-1:y+2, x-1:x+2]
>>> for i in range(len(b)):
        for x in range(len(b[i])):
            b[i][x] *= 2
>>> b
    array([[ 4,  6,  8],
           [14, 16, 18],
           [24, 26, 28]])

अब मैं इन मूल्यों को ए में बदलना चाहता हूं, मैं ऐसा कैसे करूं?

जवाब

adirabargil Dec 02 2020 at 13:08

क्या आप ने कोशिश की:

 a[y-1:y+2, x-1:x+2] = a[y-1:y+2, x-1:x+2]*2