# Profiling and Optimisation in Python to dos - [ ] (Louise) Get some resources on testing for HackMD doc or similar. - [ ] (Jost) Change testing example to something where we make a change to a function, e.g. numpy instead of list - [ ] (Louise) Add `timeit` to Profiling section (also `defaulttimer`) - [ ] After premature optimisation section, add a new section about not doing all steps manually and letting optimal Python/C code be used wherever possible. Include content from start of NumPy section. - [ ] (Jost) Revise content of dictionary and sets sections to link in with new section above - [ ] (Jost) Think about whether diagrams would be useful for the secrching section, Louise has volunteered to help if needed. Or use library analogy. - [ ] Skip bytecode section? Perhaps use smaller example. - [ ] Skip scope section, not going to be useful for substantial loops etc. - [ ] "Built in Functions ~~Operators~~" make edit to title. - [ ] Add an example to Built-in Functions section. Or maybe link to earlier material? - [ ] Take Vectorization section out. - [ ] Replace with a new section on numpy's automatic array-wise operations - [ ] Link to other packages that use numpy, perhaps case study (maybe also mention case study earlier - shapely) - [ ] Try to simplify the pandas example - maybe only use one column? - [ ] Exercises on numpy broadcasting - [ ] Remove pandas to dict section, put as link in HackMD instead - [ ] Example for Filter Early section - [ ] Make the point early in Optimisation that we need to know _where_ to optimise before putting the effort in to speed the code up - [ ] (Louise) Check in on Pandas filtering example. Can I find a commonality with the example from the profiling section? If not, what else could work?