Skip to content

Instantly share code, notes, and snippets.

@seberg
seberg / rolling_window.py
Created October 10, 2012 14:38
Multidimensional rolling_window for numpy
def rolling_window(array, window=(0,), asteps=None, wsteps=None, axes=None, toend=True):
"""Create a view of `array` which for every point gives the n-dimensional
neighbourhood of size window. New dimensions are added at the end of
`array` or after the corresponding original dimension.
Parameters
----------
array : array_like
Array to which the rolling window is applied.
window : int or tuple
import numpy as np
def object_einsum(string, *arrays):
"""Simplified object einsum, not as much error checking
does not support "..." or list input and will see "...", etc. as three times
an axes identifier, tries normal einsum first!
NOTE: This is untested, and not fast, but object type is
never really fast anyway...
@seberg
seberg / analyze_kwargs.py
Last active April 24, 2020 02:49
Hacky script to analyze python kwargs passing
#!/usr/bin/env python3
from pathlib import Path
import ast
import tokenize
class FindFuncs(ast.NodeVisitor):
# Very dirtily adapted and stolen from NumPy tests...
def __init__(self, filename, include_attributes=True):
@seberg
seberg / guess_numpy_blas.py
Last active April 9, 2020 16:02
Snippet that loads numpy and tries to guess (and give a bit of information) the BLAS/LAPACK implementation loaded at runtime
"""
Simply run the script to try to guess some information about how numpy
is linked.
If there is something odd going on, run/import the script after
your real import of numpy.
All versions tested on Linux, MKL is confusing me a bit since both lower and
upper case versions exist.

Sebastian's Philosophy of the Array Object Types and DTypes

This object is solely for me to organize my thoughts, it probably is a horrific thing if seen by a theoretical computer scientist, and gets a lot of the terminalogy wrong. Type probably usually means a theoretical type, which I think is defined as the set of all possible instances.

@seberg
seberg / stride_tricks.py
Created August 22, 2012 22:39
numy stride tricks based functions for changing the shape and axis order of arrays.
import numpy as np
from collections import defaultdict as _dd
def rolling_window(array, window=(0,), asteps=None, wsteps=None, axes=None, toend=True):
"""Create a view of `array` which for every point gives the n-dimensional
neighbourhood of size window. New dimensions are added at the end of
`array` or after the corresponding original dimension.
Parameters
----------
@seberg
seberg / README.md
Last active November 27, 2019 18:45
Assessing the NumPy namespace

Downloading both files and running the cells (takes a while) should give you drop downs with the NumPy namespace (dark green names should be the ones that end up in the main numpy namespace).

After clicking one of them, tab will go to the next, and 1, 2, 3 , and 4 will allow to fairly quickly choose how you feel about the function. I left many blank (at least the ones that are not part of the main namespace). Then you press "save" and after gathering a few of them, maybe we can get some nice result out of the data.

Unfortunately the Jupyter widgets are failry slow, although with the keyboard it was not an issue for me.

My take on the categories:

Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@seberg
seberg / numpy_logo_design_brainstorm.svg
Created September 20, 2019 23:10
Some brainstorming, based on Inessas designs, as SVG (the SVG is not tidied up, but traced bitmap and just moved around by hand)
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.