```{index} single: Filters; Split Data Array (By Tuple)
```
# Split Data Array (By Tuple)

## Group (Subgroup)

Data Manipulation (Memory/Management)

## Description

This **Filter** splits a **Data Array** into several smaller arrays along a single tuple dimension. 
The user specifies how many tuples each output array should contain along that dimension; all other dimensions remain unchanged.

For example, given an array with tuple shape `(4, 3)`:

```
{0} {1} {2}
{3} {4} {5}
{6} {7} {8}
{9} {10} {11}
```

with tuples for the output arrays set to 2 & 1 and split dimension set to 1 produces two new arrays with tuple shapes (4,2) and (4,1) respectively:

```
{0} {1}
{3} {4}
{6} {7}
{9} {10}
```

```
{2}
{5}
{8}
{11}
```


If you choose *Existing Data Group or Existing Attribute Matrix* the split arrays are placed into a pre‑existing container.  Otherwise the filter can create a *new* Data Group or *new* Attribute Matrix to hold the results.  An optional flag allows you to delete the original input array after splitting.

**Looking to split by _components_ instead?**  

See the *[Split Data Array (By Component)](SplitDataArrayByComponentFilter.md)* filter that separates each component into its own scalar array.


### Input Parameter(s)

| Parameter Name | Parameter Type | Parameter Notes | Description |
|----------------|----------------|-----------------|-------------|
| Data Array | Array Selection | Allowed Types: int8, uint8, int16, uint16, int32, uint32, int64, uint64, float32, float64, boolean | The data array to split by tuples. |
| Output Container | Choices |  | Set the output container where the output split arrays will be stored. |
| Remove Original Array | Bool |  | Whether or not to remove the original data array after splitting |
| Split Dimension | Scalar Value |UInt64 | The tuple shape dimension to split the arrays from the input data array. |
| Split Arrays: Split Dimension Counts | DynamicTable |  | How many tuples each output array should contain along the split dimension only.

• Enter one value per row; each row becomes a new split array.
• The sum of all rows **must equal** the number of tuples in the input array’s split dimension.

Example: If the input array’s tuple shape is `(100 × 200 × 300)` and the filter is splitting along the **first** dimension (100), then Split Dimension Counts of `60 | 25 | 15` creates three output arrays whose tuple shapes are `(60 × 200 × 300)`, `(25 × 200 × 300)`, and `(15 × 200 × 300)` respectively. |

### Output Parameter(s)

| Parameter Name | Parameter Type | Parameter Notes | Description |
|----------------|----------------|-----------------|-------------|
| New Data Group | DataGroupCreation |  | The path to the newly created data group where the output split arrays will be stored. |
| Existing Data Group | DataGroupSelection |  | The path to the existing data group where the output split arrays will be stored. |
| New Attribute Matrix | DataGroupCreation |  | The path to the newly created attribute matrix where the output split arrays will be stored. |
| Existing Attribute Matrix | AttributeMatrixSelection |  | The path to the existing attribute matrix where the output split arrays will be stored. |
| Output Attribute Matrix Tuple Shape | DynamicTable |  | The tuple shape for the output attribute matrix. |

## Example Pipelines

## License & Copyright

Please see the description file distributed with this plugin.

## DREAM3D‑NX Help

If you need help, need to file a bug report or want to request a new feature, please head over to the [DREAM3DNX‑Issues](https://github.com/BlueQuartzSoftware/DREAM3DNX-Issues/discussions) GitHub site where the community of DREAM3D‑NX users can help answer your questions.
