File: //lib/python3/dist-packages/numpy/core/__pycache__/records.cpython-310.pyc
o
6��aP� � @ s8 d Z ddlZddlZddlmZ ddlmZ ddlmZ ddlm
Z ddlm
Z
dd lmZ dd
lmZ g d�Ze jZdd
ddd
ddddd
ddddd�ZejZdd� Zed�G dd� d��ZG dd� dej�ZG dd� de�Zdd� Z d+dd�Z d+d d!�Z d,d"d#�Zd$d%� Z d,d&d'�Z! (d-d)d*�Z"dS ).a�
Record Arrays
=============
Record arrays expose the fields of structured arrays as properties.
Most commonly, ndarrays contain elements of a single type, e.g. floats,
integers, bools etc. However, it is possible for elements to be combinations
of these using structured types, such as::
>>> a = np.array([(1, 2.0), (1, 2.0)], dtype=[('x', np.int64), ('y', np.float64)])
>>> a
array([(1, 2.), (1, 2.)], dtype=[('x', '<i8'), ('y', '<f8')])
Here, each element consists of two fields: x (and int), and y (a float).
This is known as a structured array. The different fields are analogous
to columns in a spread-sheet. The different fields can be accessed as
one would a dictionary::
>>> a['x']
array([1, 1])
>>> a['y']
array([2., 2.])
Record arrays allow us to access fields as properties::
>>> ar = np.rec.array(a)
>>> ar.x
array([1, 1])
>>> ar.y
array([2., 2.])
� N)�Counter)�nullcontext� )�numeric)�numerictypes)� os_fspath)�
set_module)�get_printoptions)�record�recarray�
format_parser�
fromarrays�fromrecords�
fromstring�fromfile�array�>�<�=�s�|)�b�l�n�B�L�N�Sr r r r r �I�ic C s dd� t | ��� D �S )z@Find duplication in a list, return a list of duplicated elementsc S s g | ]
\}}|d kr|�qS �r � )�.0�item�countsr! r! �4/usr/lib/python3/dist-packages/numpy/core/records.py�
<listcomp>Q s
�z"find_duplicate.<locals>.<listcomp>)r �items)�listr! r! r% �find_duplicateO s
�r) �numpyc @ s4 e Zd ZdZddd�Zd
dd�Zdd � Zd
d� ZdS )r a�
Class to convert formats, names, titles description to a dtype.
After constructing the format_parser object, the dtype attribute is
the converted data-type:
``dtype = format_parser(formats, names, titles).dtype``
Attributes
----------
dtype : dtype
The converted data-type.
Parameters
----------
formats : str or list of str
The format description, either specified as a string with
comma-separated format descriptions in the form ``'f8, i4, a5'``, or
a list of format description strings in the form
``['f8', 'i4', 'a5']``.
names : str or list/tuple of str
The field names, either specified as a comma-separated string in the
form ``'col1, col2, col3'``, or as a list or tuple of strings in the
form ``['col1', 'col2', 'col3']``.
An empty list can be used, in that case default field names
('f0', 'f1', ...) are used.
titles : sequence
Sequence of title strings. An empty list can be used to leave titles
out.
aligned : bool, optional
If True, align the fields by padding as the C-compiler would.
Default is False.
byteorder : str, optional
If specified, all the fields will be changed to the
provided byte-order. Otherwise, the default byte-order is
used. For all available string specifiers, see `dtype.newbyteorder`.
See Also
--------
dtype, typename, sctype2char
Examples
--------
>>> np.format_parser(['<f8', '<i4', '<a5'], ['col1', 'col2', 'col3'],
... ['T1', 'T2', 'T3']).dtype
dtype([(('T1', 'col1'), '<f8'), (('T2', 'col2'), '<i4'), (('T3', 'col3'), 'S5')])
`names` and/or `titles` can be empty lists. If `titles` is an empty list,
titles will simply not appear. If `names` is empty, default field names
will be used.
>>> np.format_parser(['f8', 'i4', 'a5'], ['col1', 'col2', 'col3'],
... []).dtype
dtype([('col1', '<f8'), ('col2', '<i4'), ('col3', '<S5')])
>>> np.format_parser(['<f8', '<i4', '<a5'], [], []).dtype
dtype([('f0', '<f8'), ('f1', '<i4'), ('f2', 'S5')])
FNc C s&