numpy compatible