code: def filter_columns(array, filters, combination="and"):
      """Return indices of recarray entries that match criteria.
  
      Parameters
      ----------
      array : numpy array with columns
          Array in which data will be filtered.
  
      filters : list of criteria
          See _filter_column.
  
      combination : string {'and', 'or'}, default='and'
          String describing the combination operator. Possible values are "and"
          and "or".
  
      """
      if combination == "and":
          fcomb = np.logical_and
          mask = np.ones(array.shape[0], dtype=bool)
      elif combination == "or":
          fcomb = np.logical_or
          mask = np.zeros(array.shape[0], dtype=bool)
      else:
          raise ValueError(f"Combination mode not known: {combination}")
  
      for column in filters:
          mask = fcomb(
              mask, _filter_column(array, column, filters[column])
          )
      return mask
  
imports: import collections.abc
  import contextlib
  import fnmatch
  import hashlib
  import os
  import pickle
  import shutil
  import sys
  import tarfile
  import time
  import urllib
  import warnings
  import zipfile
  from pathlib import Path
  import numpy
  import requests
  from .._utils import fill_doc
  from .utils import get_data_dirs
label_desc: Use image node_id 14 for calling a global function with example usage: filter_columns(array, filters, combination) and returns: mask