Python Forum
numpy masking/filtering
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
numpy masking/filtering
#1
I'm working on a project where I'm using numpy for generative art, and I've got a question with how to filter an array without copying the data (so the original array will still be edited by a change to the filtered version). It works great for index slices, but apparently copies the data if you slice using another array as a mask?

I'm hoping this is actually super simple, and I just don't know what word numpy calls it.

import numpy as np
from PIL import Image

# small image, all black
df = np.zeros((100, 100, 3), dtype=np.uint8)

mask = np.zeros((100, 100), dtype=bool)
band = 10
for rndx, row in enumerate(mask):
    for cndx, col in enumerate(mask[rndx]):
        if abs(cndx - rndx) <= band:
            mask[rndx, cndx] = True

use_working_method = False
if use_working_method:
    # red diagonal line
    df[mask, 0] = 255
else:
    view = df[mask, :]

    # ...sometime later
    view[:, 0] = 255

    # for reference, this does work:
    view1 = df[45:55, 45:55, :]
    view1[:, :, 2] = 255  # blue, centered


im = Image.fromarray(df)
im.show()
Reply


Messages In This Thread
numpy masking/filtering - by nilamo - Dec-03-2021, 04:32 AM
RE: numpy masking/filtering - by Gribouillis - Dec-03-2021, 09:06 AM
RE: numpy masking/filtering - by nilamo - Dec-04-2021, 06:04 PM
RE: numpy masking/filtering - by nilamo - Dec-04-2021, 10:28 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  [Numpy] How to store different data type in one numpy array? water 7 841 Mar-26-2024, 02:18 PM
Last Post: snippsat
  Numpy returns "TypeError: unsupported operand type(s) for *: 'numpy.ufunc' and 'int'" kalle 2 2,726 Jul-19-2022, 06:31 AM
Last Post: paul18fr
  Problem with masking precipitation data into a shapefile atrwmb109 0 1,939 Jul-22-2019, 05:10 PM
Last Post: atrwmb109
  "erlarge" a numpy-matrix to numpy-array PhysChem 2 3,060 Apr-09-2019, 04:54 PM
Last Post: PhysChem

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020