docstr: Rename columns in `X`.
  
  Parameters
  ----------
  X : container
      Container which columns is updated.
  
  columns : ndarray of str
      Columns to update the `X`'s columns with.
  
  Returns
  -------
  updated_container : container
      Container with new names.
docstr_tok: ["Rename","columns","in","`","X","`",".","Parameters","--","--","--","--","--","X",":","container","Container","which","columns","is","updated",".","columns",":","ndarray","of","str","Columns","to","update","the","`","X","`","'s","columns","with",".","Returns","--","--","--","-","updated_container",":","container","Container","with","new","names","."]
code: def rename_columns(self, X, columns):
      """Rename columns in `X`.
  
      Parameters
      ----------
      X : container
          Container which columns is updated.
  
      columns : ndarray of str
          Columns to update the `X`'s columns with.
  
      Returns
      -------
      updated_container : container
          Container with new names.
      """
  
imports: import importlib
  from functools import wraps
  from typing import Protocol, runtime_checkable
  import numpy
  from scipy.sparse import issparse
  from .._config import get_config
  from ._available_if import available_if
label_desc: Use image node_id 3 for calling the ContainerAdapterProtocol obj's underlying member method code with example usage: obj.rename_columns(X, columns) without return types