https://github.com/nmwsharp/arrgh
A small python utility to pretty-print a table summarizing arrays & scalars from numpy, pytorch, etc.
https://github.com/nmwsharp/arrgh
Last synced: about 1 year ago
JSON representation
A small python utility to pretty-print a table summarizing arrays & scalars from numpy, pytorch, etc.
- Host: GitHub
- URL: https://github.com/nmwsharp/arrgh
- Owner: nmwsharp
- License: mit
- Created: 2023-06-15T22:09:47.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-06-16T01:26:28.000Z (almost 3 years ago)
- Last Synced: 2025-04-01T05:11:17.445Z (about 1 year ago)
- Language: Python
- Size: 13.7 KB
- Stars: 28
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# arrgh
A small python utility to pretty-print a table summarizing arrays/tensors/scalars from numpy, pytorch, etc.
**Why the name?** "arr" is short for "array", and "arrgh" is the sound you make while debugging your array shapes.
### Example
Calling `arrgh(my_arr1, my_arr2, ...)` prints a table like:
```
name | dtype | shape | type | device | min | max | mean
--------------------------------------------------------------------------------------------------------------
[None] | None | N/A | NoneType | | N/A | N/A | N/A
intval1 | int | scalar | int | | 7 | 7 | 7
intval2 | int | scalar | int | | -3 | -3 | -3
floatval0 | float | scalar | float | | 42 | 42 | 42
floatval1 | float | scalar | float | | 5.5e-12 | 5.5e-12 | 5.5e-12
floatval2 | float | scalar | float | | 7.72324e+44 | 7.72324e+44 | 7.72324e+44
npval1 | int64 | [100] | numpy.ndarray | | 0 | 99 | 49.5
npval2 | int64 | [10000] | numpy.ndarray | | 0 | 9999 | 4999.5
npval3 | uint64 | [10000] | numpy.ndarray | | 0 | 9999 | 4999.5
npval4 | float32 | [100, 10, 10] | numpy.ndarray | | 0 | 9999 | 4999.5
[temporary] | float32 | [10, 8] | numpy.ndarray | | 2 | 99 | 50.5
npval5 | int64 | [] | numpy.int64 | | 9999 | 9999 | 9999
torchval1 | torch.float32 | [1000, 12, 3] | torch.Tensor | cpu | -4.08445 | 3.90982 | 0.00404567
torchval2 | torch.float32 | [1000, 12, 3] | torch.Tensor | cuda:0 | -3.87309 | 3.90342 | 0.00339224
torchval3 | torch.int64 | [1000] | torch.Tensor | cpu | 0 | 999 | N/A
torchval4 | torch.int64 | [] | torch.Tensor | cpu | 0 | 0 | N/A
```
Use keyword arguments like `arrgh(custom_name=3.*my_arr1)` to specify names explicitly or give names to temporaries.
### Installation
`pip install arrgh`
`from arrgh import arrgh`
### Docs
The package exposes a single function called `arrgh()`. Call it like: `arrgh(my_arr, some_other_arr, maybe_a_scalar)`.
The function accepts a variable number of arguments. Arrays can also be passed as named optional arguments.
Inputs can be:
- Numpy tensor arrays
- Pytorch tensor arrays
- Jax tensor arrays
- Python ints / floats
- `None`
- It may also work with other array-like types, but they have not been tested.
- Input values which are not arrays or numeric types (strings, objects, etc) will be printed as blank rows in the table.
When arrays are passed as variable arguments, the printed name of the array in the table is inferred from the variable name in the outer scope, when possible. When arrays are passed as named keyword arguments, the key name is used.
Pass an integer for the `arrgh_float_width` option to specify the precision to which floating point types are printed.
Author: Nicholas Sharp (nmwsharp.com)