diff --git a/IPython/core/interactiveshell.py b/IPython/core/interactiveshell.py
index a4e7b5c..a911c3e 100644
--- a/IPython/core/interactiveshell.py
+++ b/IPython/core/interactiveshell.py
@@ -1699,7 +1699,7 @@ class InteractiveShell(SingletonConfigurable):
         """Get object info as formatted text"""
         return self.object_inspect_mime(oname, detail_level)['text/plain']
 
-    def object_inspect_mime(self, oname, detail_level=0):
+    def object_inspect_mime(self, oname, detail_level=0, omit_sections=()):
         """Get object info as a mimebundle of formatted representations.
 
         A mimebundle is a dictionary, keyed by mime-type.
@@ -1715,6 +1715,7 @@ class InteractiveShell(SingletonConfigurable):
                     info=info,
                     detail_level=detail_level,
                     formatter=docformat,
+                    omit_sections=omit_sections,
                 )
             else:
                 raise KeyError(oname)
diff --git a/IPython/core/oinspect.py b/IPython/core/oinspect.py
index 09b7470..3f12d51 100644
--- a/IPython/core/oinspect.py
+++ b/IPython/core/oinspect.py
@@ -566,7 +566,9 @@ class Inspector(Colorable):
         bundle['text/plain'] = text
         return bundle
 
-    def _get_info(self, obj, oname='', formatter=None, info=None, detail_level=0):
+    def _get_info(
+        self, obj, oname="", formatter=None, info=None, detail_level=0, omit_sections=()
+    ):
         """Retrieve an info dict and format it.
 
         Parameters
@@ -581,6 +583,8 @@ class Inspector(Colorable):
             already computed information
         detail_level: integer
             Granularity of detail level, if set to 1, give more information.
+        omit_sections: container[str]
+            Titles or keys to omit from output (can be set, tuple, etc., anything supporting `in`)
         """
 
         info = self._info(obj, oname=oname, info=info, detail_level=detail_level)
@@ -591,6 +595,8 @@ class Inspector(Colorable):
         }
 
         def append_field(bundle, title:str, key:str, formatter=None):
+            if title in omit_sections or key in omit_sections:
+                return
             field = info[key]
             if field is not None:
                 formatted_field = self._mime_format(field, formatter)
@@ -655,7 +661,16 @@ class Inspector(Colorable):
 
         return self.format_mime(_mime)
 
-    def pinfo(self, obj, oname='', formatter=None, info=None, detail_level=0, enable_html_pager=True):
+    def pinfo(
+        self,
+        obj,
+        oname="",
+        formatter=None,
+        info=None,
+        detail_level=0,
+        enable_html_pager=True,
+        omit_sections=(),
+    ):
         """Show detailed information about an object.
 
         Optional arguments:
@@ -676,8 +691,12 @@ class Inspector(Colorable):
           precomputed already.
 
         - detail_level: if set to 1, more information is given.
+
+        - omit_sections: set of section keys and titles to omit
         """
-        info = self._get_info(obj, oname, formatter, info, detail_level)
+        info = self._get_info(
+            obj, oname, formatter, info, detail_level, omit_sections=omit_sections
+        )
         if not enable_html_pager:
             del info['text/html']
         page.page(info)