At university I've been taught Matlab but I always wanted to switch to python in order to get rid of licensing problems and fully embrace the "open-sourceness" of this programming language. This video is a blessing!
Believe me, you are one of the most useful channels about python. Thank you so much. You would deserve much more subscriptions. What about a cython playlist?
Like many others before me, I'm just chiming in in order to thank you for these outstanding tutorials. It's not hard to find numpy tutorials on the internet, but most of them are either very basic because of the target audience (and so they can't push the student hard enough) or deeper but still mostly amounting to a showcase of methods, functions and syntax. What I like about yours is that they can be challenging at times for a newbie but still very much rooted in the scientific problem-solving mindset and that makes them priceless and fun to watch and try out.
Even after 2 years this is the most fun and informative video for numpy that i needed , really loved those exercises. thank you for such an amazing content
For my entire undergrad and masters I avoided coding like the plague, always disliked matlab and used maple a few times for checking christoffel symbols in black hole studies, other than that I am extremely inept, this tutorial saved my life, looking forward to trying all of your other videos, from one PhD student to another, god bless you
Good luck man, did the same thing. Didn't feel comfortable coding until I was out of college knowing that deadlines and everything were finally behind me. Now that I'm out though I realize what an amazing resource it is. Bet you'll have a badass thesis down the line
Very good tutorial, thank you! I was kind of figuring out Python by myself, but this helped me put everything in context. And this finally enables me to get rid of the for loops :'D
Wow, thank you so much! Because of your explanation at 29:44 I just understood those slice-operations, I allways struggled with, fell like scales from my eyes :D
Nice and meaty tutorial. Have been going over it several times. Cross-referenced many ideas and principles with information from other sources. It can be said that If nothing else, the effort invested in studying the material, has produced good fluency in typing LaTex Script, and consequently, textbook-like IPython Notebook files. Thank You!
Thanks a lot and for questions we have to think of. At that places you stop and think :"Am I really remember all the elements? And did I know how exactly to use them?" All the tricks are not just for the exact implementation of the rules , it was to teach with the way of thinking! Thank you!
Just a small remark: at 31:31 we have not found 'exactly' the locations where dydx = 0. We have just found the minimum interval available where dydx = 0 is bound to be. This is important because imagine our number of points wasn't ideally as big as 10000, in most cases we don't have the luxury of having analytic functions. And in most cases this makes it sensitive to discretization errors. So in reality one additional step would suffice to get the most precise answer. This already gives us the number of sign changes in the interval. So we could simply use interpolation to find zeros between the x[interval],x[interval+1] to get a precise answer.
I like watching this man, because he is thorough and is great with examples in his teaching, but his language is unique!!! He is LOUD. He yells to learn you the material. He also repeats himself, and he is a big fan of the imperative mood in English. He's always commanding the listener to do something or remember something. He's so funny 🤣😅🤣.
This has been fantastically helpful, thanks. I've used python a lot for the last 5 years or so for many projects, but hadn't properly acquainted with numpy. I'm currently exploring analysing captured audio signals for equipment testing, so playing with numpy and fft a bit. The array multiplication tip for finding zero crossing points is just brilliant. I've just implemented it as another way to get a frequency measurement. 👍
This was really informative! You are a genius, thank you! I like the hands-on exercises/examples, which I followed along in my own desktop application (VSCode). And I learned that "trick" of how to get all x-values when dy/dx = 0. Incredible how something that looks hard can turn out to be so easy :D Using Python a lot in my engineering career and NumPy is essentiel in numerical calculations! I guess I will continue to look at your videos, starting with SciPy!
zooming in: at 13:51 you did something most coding teachers don't take into account, which is zooming in; you yourself forget to zoom in at the beginning of your excellent tutorials , but they could be much better if you remembered to zoom in at the beginning of them; ha ha. you know, some of your thousands of spectators use glasses to watch your tutorials, 13:51, thnkyou very much for your channel for your attention and thanks in advance for zooming in, ;) Ah! and removing the side bar, hiding it: everything that increases screen real state
This stuff is pure gold. The curvefit video was excellent. Then the turkey cooking demo caught my eye. Now, you have me playing with numpy, scipy, matplotlib and sympy. Fantastic tools for engineers. I tried Jupyter but I don't see the benefit. There seems to be a big overhead when you consider that Python can be run from the most basic plain text editor.
U r the GOAT. I already liked it and I still don't even see it. Do you think it would be possible a serie in Optimization Methods using numpy numba, etc?
First things first, your channel is really great, I'm an engineering student learning python and you are making that process so much easier. That being said, did you know that you don't need any library to answer question 2? Just use a list comprehension! sum([i for i in range(0, 10_001) if i % 4 != 0 and i % 7 != 0])
Very neat! Though I suspect this may be faster with numpy, as list comprehension (which is essentially just a for loop) can be slow in python. I would try this for 10 million numbers and see which method works faster.
@@MrPSolver In my tests, there is no significant improvement other than 1 ms, 100,000,000 was enough to take the runtime to over 7 s. If someone test this and find a significant improvement, I'll like to see cuz even myself thought that with numpy would be faster, lol.
For the final part of the Question 1 : I wrote the following code before watching the solution and got the same results. I hope it helps. len= np.shape(dydx[np.sort(dydx) < 0])[0]
biggest_negative = np.sort(dydx)[len-1] biggest_negative2 = np.sort(dydx)[len-2] biggest_negative3 = np.sort(dydx)[len-3] print(biggest_negative,biggest_negative2,biggest_negative3) a, b, c = np.where(dydx == biggest_negative), np.where(dydx == biggest_negative2), np.where(dydx == biggest_negative3) # a, b, c are the indexes of the biggest_negative, biggest_negative2, biggest_negative3 consecutively. print(a,b,c) print(x[a], x[b], x[c])
Can you please make a video where you write code for a nudged elastic band calculation? You use nudged elastic band methods to calculate the structure and energy of transition state(s) for a reaction. The classic example for a nudged elastic band calculation is determining the structure and energy of the transition state for H2 splitting.
ravel(), compared to flatten(), will often be faster since no memory is copied, but you have to be more careful about modifying the array it returns. flatten() always returns a copy. ravel() returns a view of the original array whenever possible.
At 24:31 , is there any advantage of using the * operator rather than a plain logical & operator? Both give the same result, but, coming from a programming background, I feel using a boolean operator make the meaning of the operation much clearer. Other operator, like | , don't match so cleanly to a multiplication.
your channel is over the top and your are better then my python prof, so thanks . can you also uplode a video about pandas ? to much lab results in a csv file . and again many thanks
Thanks for having the chapters built into the video. I do have a question though. Do you see a benefit to learning math applications of python like this instead of using Matlab? My school gives us an edu license and I don't know where to spend my time learning.
Despite having access to both, I would still choose learning python over Matlab, mostly because there are so many resources available online for python. That being said, from what I understand, the two languages are very similar. If you spend a lot of time learning one, it should transfer over to the other (not the notation, per se, but the general way you approach problems). But for all intents and purposes, python has everything you need for an undergraduate degree. When I was in undergrad, my school also offered a full Matlab license, but I chose to learn python instead. Also when working with others people's code after you've graduated (grad school, industry) you'll notice that A LOT of code will be written in python.
Without any doubt: python. Matlab is proprietary bullshit and there is a reason Mathworks (the maker of matlab) is giving out free educational licenses to universities: just to trap you in their ecosystem. Stay clear from matlab unless you actually have to.
Ok I think I got it, that was hard af. Basically when we say that E=Ex,Ey,Ez we are not creating a bunch of vectors mashed together with the components in order, no, we are creating a 3D array that you can visualize like 3 slices of 100x100 arrays (that is the size of our meshgrid). Each slice has all possible combination of z and t values evaluated in Ex, Ey and Ez respectively. So the shape of the array is (3, 100, 100) Now, when we do swapaxes(E, 0, -1) what you are telling python is "in E, swap the first axis (the one with the 3) and the last (the second axis that has 100)) So python reshapes everything to give you E in a shape like this (100, 100, 3). That means 100 slices of 100 rows and 3 columns, which is basically what you see in screen, a lot of vectors put together with the components in order. If you don't have the data in that form, you can't do the cross product properly. That is why we need the axes to be swapped.
Ok I think I got it, that was hard af. Basically when we say that E=Ex,Ey,Ez we are not creating a bunch of vectors mashed together with the components in order, no, we are creating a 3D array that you can visualize like 3 slices of 100x100 arrays (that is the size of our meshgrid). Each slice has all possible combination of z and t values evaluated in Ex, Ey and Ez respectively. So the shape of the array is (3, 100, 100) Now, when we do swapaxes(E, 0, -1) what you are telling python is "in E, swap the first axis (the one with the 3) and the last (the second axis that has 100)) So python reshapes everything to give you E in a shape like this (100, 100, 3). That means 100 slices of 100 rows and 3 columns, which is basically what you see in screen, a lot of vectors put together with the components in order.
This dude, this channel: is a blessing.
At university I've been taught Matlab but I always wanted to switch to python in order to get rid of licensing problems and fully embrace the "open-sourceness" of this programming language. This video is a blessing!
Believe me, you are one of the most useful channels about python. Thank you so much.
You would deserve much more subscriptions.
What about a cython playlist?
I have shared this link with almost 75 students of mine in the MAchine learning with PYthon class. You have made my job so much easier.. thanks a TON
Like many others before me, I'm just chiming in in order to thank you for these outstanding tutorials.
It's not hard to find numpy tutorials on the internet, but most of them are either very basic because of the target audience (and so they can't push the student hard enough) or deeper but still mostly amounting to a showcase of methods, functions and syntax. What I like about yours is that they can be challenging at times for a newbie but still very much rooted in the scientific problem-solving mindset and that makes them priceless and fun to watch and try out.
Exactly what you said. Chiming x 2
Super useful and engaging! Looking forward to the scipy and matplotlib ones.
Even after 2 years this is the most fun and informative video for numpy that i needed , really loved those exercises.
thank you for such an amazing content
For my entire undergrad and masters I avoided coding like the plague, always disliked matlab and used maple a few times for checking christoffel symbols in black hole studies, other than that I am extremely inept, this tutorial saved my life, looking forward to trying all of your other videos, from one PhD student to another, god bless you
Good luck man, did the same thing. Didn't feel comfortable coding until I was out of college knowing that deadlines and everything were finally behind me. Now that I'm out though I realize what an amazing resource it is. Bet you'll have a badass thesis down the line
Good luck with your student loans
@@annakquinn7084 ???????? What kind of comment is that
@@alboz1327 real ones based on reality
@@annakquinn7084 the comment doesn't make sense. Why bringing up student loans, what does this have to do with anything in a python video
Very good tutorial, thank you! I was kind of figuring out Python by myself, but this helped me put everything in context. And this finally enables me to get rid of the for loops :'D
I hope the algorithm blesses you. Best tutorial for NumPy on the internet hands down.
This video series is going to be great!
Wow, thank you so much! Because of your explanation at 29:44 I just understood those slice-operations, I allways struggled with, fell like scales from my eyes :D
Nice and meaty tutorial. Have been going over it several times.
Cross-referenced many ideas and principles with information from other sources.
It can be said that If nothing else, the effort invested in studying the material,
has produced good fluency in typing LaTex Script,
and consequently, textbook-like IPython Notebook files.
Thank You!
Your tutorial are very easy to learn yet very concise, informative and in-depth. Please keep making such contents.
For sure, you're the best Python teacher I have met so far on CZcams.
Thank you so much. God bless you
Amigo, eres un crack! me sirvió muchísimo el tutorial. Gran calidad de videos :)
one of the best if not the best explanation, within 1h:30 u can say that you manipulate numpy well... continuing to scipy and plt
This is the best channel I have come across for python, as an engineering student, I am so grateful! Thank you !!
So underrated, what a great channel ! Thank you from a physics engineering undergraduate.
This is one of the best numpy tutorial for engineers on youtube!
It's awesome mate! Your videos about these libraries really help me, and of course these are very useful in my major (physics). Thank you 🙏
Thanks a lot and for questions we have to think of. At that places you stop and think :"Am I really remember all the elements? And did I know how exactly to use them?" All the tricks are not just for the exact implementation of the rules , it was to teach with the way of thinking!
Thank you!
Just a small remark: at 31:31 we have not found 'exactly' the locations where dydx = 0. We have just found the minimum interval available where dydx = 0 is bound to be. This is important because imagine our number of points wasn't ideally as big as 10000, in most cases we don't have the luxury of having analytic functions. And in most cases this makes it sensitive to discretization errors.
So in reality one additional step would suffice to get the most precise answer. This already gives us the number of sign changes in the interval. So we could simply use interpolation to find zeros between the x[interval],x[interval+1] to get a precise answer.
I am migrating from Matlab to Python. Your videos are a blessing. Thanks
It's gonna hit a million in no time!
I like watching this man, because he is thorough and is great with examples in his teaching, but his language is unique!!!
He is LOUD. He yells to learn you the material. He also repeats himself, and he is a big fan of the imperative mood in English. He's always commanding the listener to do something or remember something. He's so funny 🤣😅🤣.
This has been fantastically helpful, thanks. I've used python a lot for the last 5 years or so for many projects, but hadn't properly acquainted with numpy. I'm currently exploring analysing captured audio signals for equipment testing, so playing with numpy and fft a bit. The array multiplication tip for finding zero crossing points is just brilliant. I've just implemented it as another way to get a frequency measurement. 👍
thank you Mr.P, as a PhD geology student entering into python this video is amazing,
better than most of the other video tutorials on numpy that I have seen...
Thanks a lot mate. Please keep posting. I find these videos tremendously helpful for my Computational Nano electronics course.
very nice and in depth presentation. You deserve appreciation and subscription. Thanks
Thanks a lot for all this video. It helped me a lot in my final year project.
😊
This was really informative! You are a genius, thank you!
I like the hands-on exercises/examples, which I followed along in my own desktop application (VSCode). And I learned that "trick" of how to get all x-values when dy/dx = 0. Incredible how something that looks hard can turn out to be so easy :D
Using Python a lot in my engineering career and NumPy is essentiel in numerical calculations!
I guess I will continue to look at your videos, starting with SciPy!
Man. So good. I really wish you the best, you are such a great teacher as well. Thanks for sharing your knowledge.
I've learned a lot of thing with your videos rather than in Computer physics classes, thank u Bro
Awesome! There are no more word to say, your lecture is awesome!
Dear Mr. P Solver, I am very thankful for your Python tutorial videos. I have learnt much more things. Thank you again.
do you know what software he is using in the video?
U got one more subscriber. Just found you by chance, and I appreciate.
Great tutoria and very clear explanations!!!
Bro you are a gift for data science & machine learning.
Brilliant presentation! You pretty much covered everything important for doing computational mathematics
This is amazing! I’m sharing this with everyone I know :-)
Referred to your scipy and numpy tutorials, excellent content. Thank you!!
Great video. Having some clear and complete tutorial on these topics is very useful!
The illustration and speed is just amazing😎
I never compliment people but...this dude is fantastic.
zooming in: at 13:51 you did something most coding teachers don't take into account, which is zooming in; you yourself forget to zoom in at the beginning of your excellent tutorials , but they could be much better if you remembered to zoom in at the beginning of them; ha ha. you know, some of your thousands of spectators use glasses to watch your tutorials, 13:51, thnkyou very much for your channel for your attention and thanks in advance for zooming in, ;) Ah! and removing the side bar, hiding it: everything that increases screen real state
great young teacher here. fine fast ideas for my use of numpy in my elliptic curve work.thanky P. Solver
thank you so much for these videos. please keep up the good work
I enjoyed learning!! Please do more such tutorials. If possible, please share the codes too:)
could you explain why this code doesn't work for the last part of the 1st exercise? x[dydx==0]
@@renukavelu1701 Because it's never exactly equal to 0. We have to find the value for which it is closest to 0
such a great teacher you are! I am learning a lot here
I need more, you're wholesome.
Completed today. Thanks for this great resource Luke!
Amazing algorithm for roots!! I have watched 3 times and I cetch the idea!! You are cool!!!
This stuff is pure gold. The curvefit video was excellent. Then the turkey cooking demo caught my eye. Now, you have me playing with numpy, scipy, matplotlib and sympy. Fantastic tools for engineers. I tried Jupyter but I don't see the benefit. There seems to be a big overhead when you consider that Python can be run from the most basic plain text editor.
U r the GOAT. I already liked it and I still don't even see it. Do you think it would be possible a serie in Optimization Methods using numpy numba, etc?
First things first, your channel is really great, I'm an engineering student learning python and you are making that process so much easier. That being said, did you know that you don't need any library to answer question 2? Just use a list comprehension!
sum([i for i in range(0, 10_001) if i % 4 != 0 and i % 7 != 0])
Very neat! Though I suspect this may be faster with numpy, as list comprehension (which is essentially just a for loop) can be slow in python. I would try this for 10 million numbers and see which method works faster.
@@MrPSolver In my tests, there is no significant improvement other than 1 ms, 100,000,000 was enough to take the runtime to over 7 s. If someone test this and find a significant improvement, I'll like to see cuz even myself thought that with numpy would be faster, lol.
28:00 Wow, that's an amazing trick! Last semester I had a computational physics exam. If I know this sooner, probably my grade would be better
😅
Thank you very much for providing this type of content to us.
This dude is an absolute legend
For the final part of the Question 1 :
I wrote the following code before watching the solution and got the same results. I hope it helps.
len= np.shape(dydx[np.sort(dydx) < 0])[0]
biggest_negative = np.sort(dydx)[len-1]
biggest_negative2 = np.sort(dydx)[len-2]
biggest_negative3 = np.sort(dydx)[len-3]
print(biggest_negative,biggest_negative2,biggest_negative3)
a, b, c = np.where(dydx == biggest_negative), np.where(dydx == biggest_negative2), np.where(dydx == biggest_negative3)
# a, b, c are the indexes of the biggest_negative, biggest_negative2, biggest_negative3 consecutively.
print(a,b,c)
print(x[a], x[b], x[c])
Very concise explanations thanks you are a lifesaver
Amazing stuff and one of the best teachings I’ve ever seen ❤️
brilliant series, many people say that scientists use NumPy, scipy but you showed "HOW TO DO IT"
These videos are great, man.
Can you please make a video where you write code for a nudged elastic band calculation? You use nudged elastic band methods to calculate the structure and energy of transition state(s) for a reaction. The classic example for a nudged elastic band calculation is determining the structure and energy of the transition state for H2 splitting.
love the camera dude
This is Awesome !!
Science girls should be in looove
These tutorials are really great ! Thanks man !
Perhaps the best explanation!!
Thanks a ton. Please keep making your videos. Just excellent.
ravel(), compared to flatten(), will often be faster since no memory is copied, but you have to be more careful about modifying the array it returns. flatten() always returns a copy. ravel() returns a view of the original array whenever possible.
Thanks for this great tutorial.
1:10:56 I think it should be z instead of t given that we're plotting Ex as function of z with fixed t
Can you please explain this part E = np.swapaxes(E, 0, -1)? Why is -1 the element or inner axis?
At 24:31 , is there any advantage of using the * operator rather than a plain logical & operator? Both give the same result, but, coming from a programming background, I feel using a boolean operator make the meaning of the operation much clearer. Other operator, like | , don't match so cleanly to a multiplication.
your channel is over the top and your are better then my python prof, so thanks . can you also uplode a video about pandas ? to much lab results in a csv file . and again many thanks
You are a legend
omg awesome content I am learning for my passion in physics
Thanks, and please continue (:
God bless you, thanks for this
Thanks for having the chapters built into the video. I do have a question though. Do you see a benefit to learning math applications of python like this instead of using Matlab? My school gives us an edu license and I don't know where to spend my time learning.
Despite having access to both, I would still choose learning python over Matlab, mostly because there are so many resources available online for python. That being said, from what I understand, the two languages are very similar. If you spend a lot of time learning one, it should transfer over to the other (not the notation, per se, but the general way you approach problems). But for all intents and purposes, python has everything you need for an undergraduate degree. When I was in undergrad, my school also offered a full Matlab license, but I chose to learn python instead. Also when working with others people's code after you've graduated (grad school, industry) you'll notice that A LOT of code will be written in python.
Without any doubt: python. Matlab is proprietary bullshit and there is a reason Mathworks (the maker of matlab) is giving out free educational licenses to universities: just to trap you in their ecosystem. Stay clear from matlab unless you actually have to.
Man you are amazing!!
Great work
1:09:00 is a multi-level blessing.
Thank you!!
Impressive, wonderful python skills.
Please continue making video
Amazing tutorial thank you very much !!
great! I am back to python thanks to you. what about the Maxwell equations?
thanks yu sooo much ,you are awesome .
Hey man ,you got one new subscriber 😊
hello Mr. P Solver, I really love your videos but with regards to that multi-dimensional arrays, 3D animations would really help.
Excellent Tutorial .... Thank you ...
Thank you, Luke. Can you upload the meshgrids diagram , thanks!
Canada seems to be a country with very good education system
Can someone elaborate why we need to swap axes at 1:12:00? I just can't wrap my head around it
Ok I think I got it, that was hard af.
Basically when we say that E=Ex,Ey,Ez we are not creating a bunch of vectors mashed together with the components in order, no, we are creating a 3D array that you can visualize like 3 slices of 100x100 arrays (that is the size of our meshgrid). Each slice has all possible combination of z and t values evaluated in Ex, Ey and Ez respectively.
So the shape of the array is (3, 100, 100)
Now, when we do swapaxes(E, 0, -1) what you are telling python is "in E, swap the first axis (the one with the 3) and the last (the second axis that has 100))
So python reshapes everything to give you E in a shape like this (100, 100, 3). That means 100 slices of 100 rows and 3 columns, which is basically what you see in screen, a lot of vectors put together with the components in order.
If you don't have the data in that form, you can't do the cross product properly. That is why we need the axes to be swapped.
I think in question 4,the last term of y-axis should be E(t/k) rather than E(tk)
Day 1 | 15:18 Calculus and Statistics
1:12:30 I don't understand what swapaxes does? is it not just a transpose?
Its essentially the same thing, ya!
The array has three dimensions, so there are "many ways to transpose it"; swapaxes picks which two axes we want to switch around here.
Ok I think I got it, that was hard af.
Basically when we say that E=Ex,Ey,Ez we are not creating a bunch of vectors mashed together with the components in order, no, we are creating a 3D array that you can visualize like 3 slices of 100x100 arrays (that is the size of our meshgrid). Each slice has all possible combination of z and t values evaluated in Ex, Ey and Ez respectively.
So the shape of the array is (3, 100, 100)
Now, when we do swapaxes(E, 0, -1) what you are telling python is "in E, swap the first axis (the one with the 3) and the last (the second axis that has 100))
So python reshapes everything to give you E in a shape like this (100, 100, 3). That means 100 slices of 100 rows and 3 columns, which is basically what you see in screen, a lot of vectors put together with the components in order.
24:34 Can anyone confirm that `y[(x>=4)*(x=4)&(x
you must have had a PhD in either Maths or Physics, am I wrong?