5 ms·
NumPy Tricks and Pitfalls
- Woberto 9y agoI'm an engineering student that does programming and am wondering, can I ask what are some good resources to gain the appropriate background that would allow me to understand more of this notebook? I have used tools like Numpy but probably not very efficiently without understanding their strengths and weaknesses. What books or online courses should I look into to know about memory, flops, and things like that? I should probably ask this somewhere else but I'm not sure what the appropriate forum is, if you could point me to where I should that would be great. Thank you!
- thijsvandien 9y agoHere's a great mini-book that explains how NumPy can improve efficiency, at an appropriate level of detail for what you're asking: http://www.labri.fr/perso/nrougier/from-python-to-numpy/ http://www.labri.fr/perso/nrougier/from-python-to-numpy/
- CardenB 9y agoYou shouldn’t be afraid to fail, man! Instead of doing something in Matlab, try it in numpy and just do some research to figure out what you want to do. Eventually you’ll pick up tips from all your online resources, and you’ll realize you could have done some things better the whole time.
- Waterluvian 9y agoYes! There's many ways to learn. One way is essentially the brute force method: Google every Single thing until you get it. That's how I learned Nimoy when doing some basic image analysis.
- YaxelPerez 9y agoI use a depth-first tree traversal to learn a subject. Start at something broad like "physics" and work your way down each sub-topic.
- metaobject 9y agoYeah, but you better define some stopping criteria or else you'll end up with a PhD if you're not careful.
- deleted 9y ago[deleted]
- ehudla 9y ago> What books or online courses should I look into to know about memory, flops, and things like that? What you are after are books/courses on "architecture", I think. A classic book on the subject is Hennessy & Patterson. https://www.amazon.com/Computer-Architecture-Sixth-Quantitative-Approach/dp/0128119055 https://www.amazon.com/Computer-Architecture-Sixth-Quantitat...
- okman 9y agoI still don't really understand why someone would choose to use NumPy when the numerical story in Rust is now so good.
- losteric 9y agoNumpy is great because of all the frameworks built on top. What's the story with Rust?
- kevmo314 9y agoPerhaps for engineers, but for the rest of the scientific community it's pretty obvious: Rust doesn't have nearly the coverage that NumPy does. A quick check, I couldn't find a GMRES solver in Rust, which is extremely useful for solving large linear systems and hardly an obscure algorithm. FWIW this is the same situation NumPy was in a while back ago, but instead of boldly asserting that what they had was enough, they looked to other prevalent languages to figure out what was missing and packages like pandas and statsmodels came out.
- empath75 9y agoAs someone who likes rust, python is just easier to code for exploration and the kinds of advantages you get for using rust aren’t particularly relevant.
- beisner 9y agoTensorFlow doesn’t have a Rust interface.
- seventydwarves 9y agoIsn't this a Rust interface for TensorFlow? https://github.com/tensorflow/rust https://github.com/tensorflow/rust
- ubernostrum 9y agoThe entire surrounding ecosystem. Which includes not just the core numpy/scipy libraries but the stats, modeling, ML, plotting, etc. Plus the wealth of other Python stuff it can integrate with (I work at an almost entirely Python shop -- data science people work in the same language as pipeline and application people, which is really an overlooked thing). Plus the ease of installation and management from Anaconda. Plus the notebook format for easy sharing. Plus... well, lots and lots and lots of things. "We have a fast numerical library" is step one of about ten thousand to achieving parity with what the Python/numpy/scipy ecosystem does.
- rebabre 9y agoWhats the funnest thing you guys made with NumPy?
- minimaxir 9y agoConsidering the top numeric Python libraries have dependencies on Numpy, including data manipulation (pandas), machine learning (scikit-learn) and deep learning (TensorFlow), you may want to narrow down the question.
- smortaz 9y agoI uploaded to Azure Notebooks in case anyone wants to run it w/o setting up an environment: https://notebooks.azure.com/smortaz/libraries/advanced-numpy-techniques https://notebooks.azure.com/smortaz/libraries/advanced-numpy... Click Clone, Sign in, then Run
- williamstein 9y agoSimilar in CoCalc https://cocalc.com/share/4a5f0542-5873-4eed-a85c-a18c706e8bcd/support/np-learn/presentation.ipynb?viewer=share https://cocalc.com/share/4a5f0542-5873-4eed-a85c-a18c706e8bc... Click "Open in CoCalc", then select all, copy.
- pasokan 9y agoThe python link is not working? https://github.com/ASvyatkovskiy/PythonWorkshop/blob/Spring2017/1_PythonBasics/PythonBasics.ipynb https://github.com/ASvyatkovskiy/PythonWorkshop/blob/Spring2...
- vladf 9y agoAh, that's a shame, it looks like that notebook is no longer available. Thanks for pointing it out. I'll remove the reference.