?????????? ????????? - ??????????????? - /usr/lib64/python3.9/site-packages/numpy/lib/__pycache__/index_tricks.cpython-39.opt-1.pyc
???????
a z[ycow � @ s� d dl Z d dlZd dlZd dlZd dlm mZ d dlmZm Z m Z mZmZm Z mZ d dlmZmZ d dlmZ ddlmZ d dlmZmZ d dlmZ d dlmZmZ d d lmZ e j ej!d d�Z!g d�Z"d d� Z#e!e#�dd� �Z$G dd� d�Z%G dd� de%�Z&e&� Z'G dd� de%�Z(e(� Z)G dd� d�Z*G dd� de*�Z+e+� Z,G dd� de*�Z-e-� Z.ed �G dd� d��Z/ed �G dd � d ��Z0G d!d"� d"�Z1e1d#d$�Z2e1d%d$�Z3d1d&d'�Z4e!e4�d2d(d)��Z5ed �d3d+d,��Z6d-d.� Z7e!e7�d/d0� �Z8dS )4� N)�asarray� ScalarType�array�alltrue�cumprod�arange�ndim)�find_common_type� issubdtype� )�diff)�ravel_multi_index� unravel_index)� set_module)� overrides�linspace)� as_stridedZnumpy)�module)r r �mgrid�ogrid�r_�c_�s_� index_exp�ix_�ndenumerate�ndindex� fill_diagonal�diag_indices�diag_indices_fromc G s | S �N� )�argsr! r! �</usr/lib64/python3.9/site-packages/numpy/lib/index_tricks.py�_ix__dispatcher s r$ c G s� g }t | �}t| �D ]�\}}t|tj�sFt|�}|jdkrF|�tj�}|j dkrXt d��t|jtj �rp|�� \}|�d| |jf d|| d �}|�|� qt|�S )a5 Construct an open mesh from multiple sequences. This function takes N 1-D sequences and returns N outputs with N dimensions each, such that the shape is 1 in all but one dimension and the dimension with the non-unit shape value cycles through all N dimensions. Using `ix_` one can quickly construct index arrays that will index the cross product. ``a[np.ix_([1,3],[2,5])]`` returns the array ``[[a[1,2] a[1,5]], [a[3,2] a[3,5]]]``. Parameters ---------- args : 1-D sequences Each sequence should be of integer or boolean type. Boolean sequences will be interpreted as boolean masks for the corresponding dimension (equivalent to passing in ``np.nonzero(boolean_sequence)``). Returns ------- out : tuple of ndarrays N arrays with N dimensions each, with N the number of input sequences. Together these arrays form an open mesh. See Also -------- ogrid, mgrid, meshgrid Examples -------- >>> a = np.arange(10).reshape(2, 5) >>> a array([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]]) >>> ixgrid = np.ix_([0, 1], [2, 4]) >>> ixgrid (array([[0], [1]]), array([[2, 4]])) >>> ixgrid[0].shape, ixgrid[1].shape ((2, 1), (1, 2)) >>> a[ixgrid] array([[2, 4], [7, 9]]) >>> ixgrid = np.ix_([True, True], [2, 4]) >>> a[ixgrid] array([[2, 4], [7, 9]]) >>> ixgrid = np.ix_([True, True], [False, False, True, False, True]) >>> a[ixgrid] array([[2, 4], [7, 9]]) r r z!Cross index must be 1 dimensional)r )�len� enumerate� isinstance�_nx�ndarrayr �size�astypeZintpr � ValueErrorr �dtypeZbool_ZnonzeroZreshape�append�tuple)r"