File: //opt/alt/python37/lib64/python3.7/site-packages/numpy/core/__pycache__/records.cpython-37.pyc
B
<�Fd�r � @ s d Z ddlmZmZmZ ddlZddlZddlmZ ddlm
Z ddlm
Z
mZmZ dd d
gZe jZddd
ddd
ddddd
dddd�ZejZdd� ZG dd
� d
�ZG dd� dej�ZG dd � d e�Zd$dd�Zd%dd�Zd&dd�Zdd� Zd'dd �Zd(d"d#�ZdS ))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', int), ('y', float)])
>>> a
array([(1, 2.0), (1, 2.0)],
dtype=[('x', '<i4'), ('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.])
� )�division�absolute_import�print_functionN� )�numeric)�numerictypes)� isfileobj�bytes�long�record�recarray�
format_parser�>�<�=�s�|)�b�l�n�B�L�N�Sr r r r r �I�ic C sP g }xFt t| ��D ]6}| | | |d d� kr| | |kr|�| | � qW |S )z@Find duplication in a list, return a list of duplicated elementsr N)�range�len�append)�list�dupr � r! �E/opt/alt/python37/lib64/python3.7/site-packages/numpy/core/records.py�find_duplicateJ s r# c @ s4 e Zd ZdZd
dd�Zddd�Zd d
� Zdd� 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. | � ||� | �||� | �|� | j| _d S )N)�
_parseFormats�_setfieldnames�_createdescr�_descr�dtype)�self�formats�names�titles�aligned� byteorderr! r! r"