code: def _extract_mnist_images(filename, num_images):
    
    with gzip.open(filename) as bytestream:
      bytestream.read(16)
      buf = bytestream.read(_MNIST_IMAGE_SIZE * _MNIST_IMAGE_SIZE * num_images)
      data = np.frombuffer(buf, dtype=np.uint8)
      data = data.reshape(num_images, _MNIST_IMAGE_SIZE, _MNIST_IMAGE_SIZE, 1)
    return data
docs: Extract images from an MNIST file into a numpy array.
  
    Args:
      filename: The path to an MNIST images file.
      num_images: The number of images in the file.
  
    Returns:
      A numpy array of shape [number_of_images, height, width, channels].