7272 Pandas4Warning ,
7373)
7474from pandas .util ._decorators import (
75+ Appender ,
7576 cache_readonly ,
77+ doc ,
7678 set_module ,
7779)
7880from pandas .util ._exceptions import (
@@ -5014,73 +5016,8 @@ def values(self) -> ArrayLike:
50145016 return data
50155017
50165018 @cache_readonly
5019+ @doc (IndexOpsMixin .array )
50175020 def array (self ) -> ExtensionArray :
5018- """
5019- The ExtensionArray of the data backing this Series or Index.
5020-
5021- This property provides direct access to the underlying array data of a
5022- Series or Index without requiring conversion to a NumPy array. It
5023- returns an ExtensionArray, which is the native storage format for
5024- pandas extension dtypes.
5025-
5026- Returns
5027- -------
5028- ExtensionArray
5029- An ExtensionArray of the values stored within. For extension
5030- types, this is the actual array. For NumPy native types, this
5031- is a thin (no copy) wrapper around :class:`numpy.ndarray`.
5032-
5033- ``.array`` differs from ``.values``, which may require converting
5034- the data to a different form.
5035-
5036- See Also
5037- --------
5038- Index.to_numpy : Similar method that always returns a NumPy array.
5039- Series.to_numpy : Similar method that always returns a NumPy array.
5040-
5041- Notes
5042- -----
5043- This table lays out the different array types for each extension
5044- dtype within pandas.
5045-
5046- ================== =============================
5047- dtype array type
5048- ================== =============================
5049- category Categorical
5050- period PeriodArray
5051- interval IntervalArray
5052- IntegerNA IntegerArray
5053- string StringArray
5054- boolean BooleanArray
5055- datetime64[ns, tz] DatetimeArray
5056- ================== =============================
5057-
5058- For any 3rd-party extension types, the array type will be an
5059- ExtensionArray.
5060-
5061- For all remaining dtypes ``.array`` will be a
5062- :class:`arrays.NumpyExtensionArray` wrapping the actual ndarray
5063- stored within. If you absolutely need a NumPy array (possibly with
5064- copying / coercing data), then use :meth:`Series.to_numpy` instead.
5065-
5066- Examples
5067- --------
5068- For regular NumPy types like int, and float, a NumpyExtensionArray
5069- is returned.
5070-
5071- >>> pd.Series([1, 2, 3]).array
5072- <NumpyExtensionArray>
5073- [1, 2, 3]
5074- Length: 3, dtype: int64
5075-
5076- For extension types, like Categorical, the actual ExtensionArray
5077- is returned
5078-
5079- >>> ser = pd.Series(pd.Categorical(["a", "b", "a"]))
5080- >>> ser.array
5081- ['a', 'b', 'a']
5082- Categories (2, str): ['a', 'b']
5083- """
50845021 array = self ._data
50855022 if isinstance (array , np .ndarray ):
50865023 from pandas .core .arrays .numpy_ import NumpyExtensionArray
@@ -5186,37 +5123,8 @@ def _from_join_target(self, result: np.ndarray) -> ArrayLike:
51865123 return type (self .values )._from_sequence (result , dtype = self .dtype )
51875124 return result
51885125
5126+ @doc (IndexOpsMixin ._memory_usage )
51895127 def memory_usage (self , deep : bool = False ) -> int :
5190- """
5191- Memory usage of the values.
5192-
5193- Parameters
5194- ----------
5195- deep : bool, default False
5196- Introspect the data deeply, interrogate
5197- `object` dtypes for system-level memory consumption.
5198-
5199- Returns
5200- -------
5201- bytes used
5202- Returns memory usage of the values in the Index in bytes.
5203-
5204- See Also
5205- --------
5206- numpy.ndarray.nbytes : Total bytes consumed by the elements of the
5207- array.
5208-
5209- Notes
5210- -----
5211- Memory usage does not include memory consumed by elements that
5212- are not components of the array if deep=False or if used on PyPy
5213-
5214- Examples
5215- --------
5216- >>> idx = pd.Index([1, 2, 3])
5217- >>> idx.memory_usage()
5218- 24
5219- """
52205128 result = self ._memory_usage (deep = deep )
52215129
52225130 # include our engine hashtable, only if it's already cached
@@ -7535,67 +7443,10 @@ def _maybe_disable_logical_methods(self, opname: str_t) -> None:
75357443 if isinstance (self , ABCMultiIndex ):
75367444 raise TypeError (f"cannot perform { opname } with { type (self ).__name__ } " )
75377445
7446+ @Appender (IndexOpsMixin .argmin .__doc__ )
75387447 def argmin (
75397448 self , axis : AxisInt | None = None , skipna : bool = True , * args , ** kwargs
75407449 ) -> int :
7541- """
7542- Return int position of the smallest value in the Series.
7543-
7544- If the minimum is achieved in multiple locations,
7545- the first row position is returned.
7546-
7547- Parameters
7548- ----------
7549- axis : {None}
7550- Unused. Parameter needed for compatibility with DataFrame.
7551- skipna : bool, default True
7552- Exclude NA/null values. If the entire Series is NA, or if ``skipna=False``
7553- and there is an NA value, this method will raise a ``ValueError``.
7554- *args, **kwargs
7555- Additional arguments and keywords for compatibility with NumPy.
7556-
7557- Returns
7558- -------
7559- int
7560- Row position of the minimum value.
7561-
7562- See Also
7563- --------
7564- Series.argmin : Return position of the minimum value.
7565- Series.argmax : Return position of the maximum value.
7566- numpy.ndarray.argmin : Equivalent method for numpy arrays.
7567- Series.idxmax : Return index label of the maximum values.
7568- Series.idxmin : Return index label of the minimum values.
7569-
7570- Examples
7571- --------
7572- Consider dataset containing cereal calories
7573-
7574- >>> s = pd.Series(
7575- ... [100.0, 110.0, 120.0, 110.0],
7576- ... index=[
7577- ... "Corn Flakes",
7578- ... "Almond Delight",
7579- ... "Cinnamon Toast Crunch",
7580- ... "Cocoa Puff",
7581- ... ],
7582- ... )
7583- >>> s
7584- Corn Flakes 100.0
7585- Almond Delight 110.0
7586- Cinnamon Toast Crunch 120.0
7587- Cocoa Puff 110.0
7588- dtype: float64
7589-
7590- >>> s.argmax()
7591- np.int64(2)
7592- >>> s.argmin()
7593- np.int64(0)
7594-
7595- The maximum cereal calories is the third element and
7596- the minimum cereal calories is the first element,
7597- since series is zero-indexed.
7598- """
75997450 nv .validate_argmin (args , kwargs )
76007451 nv .validate_minmax_axis (axis )
76017452
@@ -7607,67 +7458,10 @@ def argmin(
76077458
76087459 return super ().argmin (skipna = skipna )
76097460
7461+ @Appender (IndexOpsMixin .argmax .__doc__ )
76107462 def argmax (
76117463 self , axis : AxisInt | None = None , skipna : bool = True , * args , ** kwargs
76127464 ) -> int :
7613- """
7614- Return int position of the largest value in the Series.
7615-
7616- If the maximum is achieved in multiple locations,
7617- the first row position is returned.
7618-
7619- Parameters
7620- ----------
7621- axis : {None}
7622- Unused. Parameter needed for compatibility with DataFrame.
7623- skipna : bool, default True
7624- Exclude NA/null values. If the entire Series is NA, or if ``skipna=False``
7625- and there is an NA value, this method will raise a ``ValueError``.
7626- *args, **kwargs
7627- Additional arguments and keywords for compatibility with NumPy.
7628-
7629- Returns
7630- -------
7631- int
7632- Row position of the maximum value.
7633-
7634- See Also
7635- --------
7636- Series.argmax : Return position of the maximum value.
7637- Series.argmin : Return position of the minimum value.
7638- numpy.ndarray.argmax : Equivalent method for numpy arrays.
7639- Series.idxmax : Return index label of the maximum values.
7640- Series.idxmin : Return index label of the minimum values.
7641-
7642- Examples
7643- --------
7644- Consider dataset containing cereal calories
7645-
7646- >>> s = pd.Series(
7647- ... [100.0, 110.0, 120.0, 110.0],
7648- ... index=[
7649- ... "Corn Flakes",
7650- ... "Almond Delight",
7651- ... "Cinnamon Toast Crunch",
7652- ... "Cocoa Puff",
7653- ... ],
7654- ... )
7655- >>> s
7656- Corn Flakes 100.0
7657- Almond Delight 110.0
7658- Cinnamon Toast Crunch 120.0
7659- Cocoa Puff 110.0
7660- dtype: float64
7661-
7662- >>> s.argmax()
7663- np.int64(2)
7664- >>> s.argmin()
7665- np.int64(0)
7666-
7667- The maximum cereal calories is the third element and
7668- the minimum cereal calories is the first element,
7669- since series is zero-indexed.
7670- """
76717465 nv .validate_argmax (args , kwargs )
76727466 nv .validate_minmax_axis (axis )
76737467
0 commit comments