NumPy Tutorial (2022): For Physicists, Engineers, and Mathematicians

Поділитися
Вставка
  • Опубліковано 5 чер 2024
  • Check out my course on UDEMY: learn the skills you need for coding in STEM:
    www.udemy.com/course/python-s...
    This from-scratch tutorial on NumPy is designed specifically for those in physics, mathematics, and engineering. In the future, I will be making tutorial videos on all the essential python packages, so subscribe for more!
    All code can be found here:
    github.com/lukepolson/youtube...
    0:00 Introduction
    3:43 Array Operations
    8:28 Indexing and Slicing (1 Dimension)
    15:18 Calculus and Statistics
    21:28 Examples
    47:18 Multi-Dimensional Arrays
    52:22 Functions on Multi-Dimensional Arrays
    56:26 Linear Algebra: Matrix Operations
    58:33 Linear Algebra: Systems of Equations
    59:53 Linear Algebra: Eigenvalue Problems
    1:02:02 Examples
    1:28:42 Basic Datasets
  • Наука та технологія

КОМЕНТАРІ • 212

  • @francisrayquintana5119
    @francisrayquintana5119 3 роки тому +118

    This dude, this channel: is a blessing.

  • @indocesare14
    @indocesare14 Рік тому +12

    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!

  • @flynnxd8229
    @flynnxd8229 3 роки тому +19

    Super useful and engaging! Looking forward to the scipy and matplotlib ones.

  • @ayushkumarsharma7019
    @ayushkumarsharma7019 11 місяців тому +4

    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

  • @vittoriociardiello9945
    @vittoriociardiello9945 2 роки тому +56

    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?

  • @SubhadipDas1
    @SubhadipDas1 Рік тому +1

    Your tutorial are very easy to learn yet very concise, informative and in-depth. Please keep making such contents.

  • @Ali-pd2rl
    @Ali-pd2rl Рік тому +3

    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 🙏

  • @davidhendriks1395
    @davidhendriks1395 3 роки тому +1

    Great video. Having some clear and complete tutorial on these topics is very useful!

  • @VALedu11
    @VALedu11 Рік тому +1

    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

  • @nicoleworoniuk1544
    @nicoleworoniuk1544 11 місяців тому

    This is the best channel I have come across for python, as an engineering student, I am so grateful! Thank you !!

  • @AishikDasgupta-pm5pl
    @AishikDasgupta-pm5pl Рік тому +1

    Thanks a lot mate. Please keep posting. I find these videos tremendously helpful for my Computational Nano electronics course.

  • @marioaguilar8735
    @marioaguilar8735 2 роки тому +1

    U got one more subscriber. Just found you by chance, and I appreciate.
    Great tutoria and very clear explanations!!!

  • @abishaimathai6542
    @abishaimathai6542 Рік тому +1

    I hope the algorithm blesses you. Best tutorial for NumPy on the internet hands down.

  • @amsal1998
    @amsal1998 3 роки тому +5

    This video series is going to be great!

  • @kekskekskeks112
    @kekskekskeks112 3 роки тому +7

    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

  • @AluminiumT6
    @AluminiumT6 Рік тому

    Completed today. Thanks for this great resource Luke!

  • @frankkoslowski6917
    @frankkoslowski6917 2 роки тому +1

    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!

  • @leonardofacchin1452
    @leonardofacchin1452 2 роки тому +5

    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.

    • @bot5am
      @bot5am 2 роки тому +1

      Exactly what you said. Chiming x 2

  • @sietsebuijsman8523
    @sietsebuijsman8523 2 роки тому +28

    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

  • @sucksh97
    @sucksh97 3 роки тому +8

    Amigo, eres un crack! me sirvió muchísimo el tutorial. Gran calidad de videos :)

  • @bismillahyusufu5121
    @bismillahyusufu5121 7 місяців тому

    For sure, you're the best Python teacher I have met so far on UA-cam.
    Thank you so much. God bless you

  • @AndreasLvgaard
    @AndreasLvgaard 2 роки тому +2

    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!

  • @user-qo7vr3ml4c
    @user-qo7vr3ml4c Місяць тому

    Referred to your scipy and numpy tutorials, excellent content. Thank you!!

  • @carlossalgueirosa1821
    @carlossalgueirosa1821 2 роки тому +1

    Awesome! There are no more word to say, your lecture is awesome!

  • @NinjaMartin
    @NinjaMartin Місяць тому

    Man. So good. I really wish you the best, you are such a great teacher as well. Thanks for sharing your knowledge.

  • @lecturesfromleeds614
    @lecturesfromleeds614 7 місяців тому

    Brilliant presentation! You pretty much covered everything important for doing computational mathematics

  • @irvinggaspar1531
    @irvinggaspar1531 2 роки тому

    I've learned a lot of thing with your videos rather than in Computer physics classes, thank u Bro

  • @marounrizk
    @marounrizk 6 місяців тому

    So underrated, what a great channel ! Thank you from a physics engineering undergraduate.

  • @user-vi1tw1xw7r
    @user-vi1tw1xw7r 5 місяців тому

    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. 👍

  • @scienceaj2907
    @scienceaj2907 Рік тому

    Amazing stuff and one of the best teachings I’ve ever seen ❤️

  • @akshatrastogi9063
    @akshatrastogi9063 Рік тому

    This is one of the best numpy tutorial for engineers on youtube!

  • @lookaway8496
    @lookaway8496 2 роки тому +1

    such a great teacher you are! I am learning a lot here

  • @user-le1el4fy4t
    @user-le1el4fy4t 3 місяці тому

    very nice and in depth presentation. You deserve appreciation and subscription. Thanks

  • @alex_blade2001
    @alex_blade2001 2 місяці тому

    Thanks a lot for all this video. It helped me a lot in my final year project.
    😊

  • @d3f3kt57
    @d3f3kt57 Рік тому

    I am migrating from Matlab to Python. Your videos are a blessing. Thanks

  • @brucewernick6542
    @brucewernick6542 2 роки тому

    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.

  • @abdullahalmehadi6152
    @abdullahalmehadi6152 2 роки тому

    These tutorials are really great ! Thanks man !

  • @connorbrown5267
    @connorbrown5267 2 роки тому +17

    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

    • @guitar0wnz
      @guitar0wnz 2 роки тому +1

      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

    • @annakquinn7084
      @annakquinn7084 2 роки тому

      Good luck with your student loans

    • @alboz1327
      @alboz1327 2 роки тому +1

      @@annakquinn7084 ???????? What kind of comment is that

    • @annakquinn7084
      @annakquinn7084 2 роки тому +1

      @@alboz1327 real ones based on reality

    • @albertonovati8033
      @albertonovati8033 2 роки тому +1

      @@annakquinn7084 the comment doesn't make sense. Why bringing up student loans, what does this have to do with anything in a python video

  • @mayabelemezova1548
    @mayabelemezova1548 2 роки тому

    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!

  • @markushaysnielsen4885
    @markushaysnielsen4885 3 роки тому +3

    This is amazing! I’m sharing this with everyone I know :-)

  • @samuelnjau8086
    @samuelnjau8086 Рік тому

    The illustration and speed is just amazing😎

  • @maksudulhossainjewel378
    @maksudulhossainjewel378 2 роки тому +1

    It's gonna hit a million in no time!

  • @Michallote
    @Michallote Рік тому +10

    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.

  • @anweshbhattacharyya7763
    @anweshbhattacharyya7763 2 роки тому

    Bro you are a gift for data science & machine learning.

  • @ErikS-
    @ErikS- Рік тому

    better than most of the other video tutorials on numpy that I have seen...

  • @ameerbaloch9894
    @ameerbaloch9894 3 роки тому +3

    thank you so much for these videos. please keep up the good work

  • @kevinesh
    @kevinesh 3 роки тому +1

    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?

  • @AnatolVZ
    @AnatolVZ Рік тому

    Amazing algorithm for roots!! I have watched 3 times and I cetch the idea!! You are cool!!!

  • @e-Technik
    @e-Technik 2 роки тому

    Thanks a ton. Please keep making your videos. Just excellent.

  • @sarojmandloi7974
    @sarojmandloi7974 Рік тому +1

    Thank you very much for providing this type of content to us.

  • @frankservant5754
    @frankservant5754 2 роки тому +1

    Very concise explanations thanks you are a lifesaver

  • @Millapez
    @Millapez 3 місяці тому

    thank you Mr.P, as a PhD geology student entering into python this video is amazing,

  • @bensepter8500
    @bensepter8500 Рік тому

    These videos are great, man.

  • @kaushikgupta8722
    @kaushikgupta8722 2 роки тому

    Perhaps the best explanation!!

  • @richardbennett4365
    @richardbennett4365 2 роки тому

    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 🤣😅🤣.

  • @shrimaykher2978
    @shrimaykher2978 2 роки тому

    Man you are amazing!!
    Great work

  • @prietjepruck
    @prietjepruck Рік тому

    Thanks for this great tutorial.

  • @gedavaa1
    @gedavaa1 Рік тому

    Dear Mr. P Solver, I am very thankful for your Python tutorial videos. I have learnt much more things. Thank you again.

    • @User-jr7vf
      @User-jr7vf Рік тому

      do you know what software he is using in the video?

  • @TatouVlogs1
    @TatouVlogs1 3 роки тому +2

    I need more, you're wholesome.

  • @thomasking5894
    @thomasking5894 2 роки тому

    great young teacher here. fine fast ideas for my use of numpy in my elliptic curve work.thanky P. Solver

  • @user-ml9ib1lm3r
    @user-ml9ib1lm3r 2 роки тому

    Amazing tutorial thank you very much !!

  • @nobody2937
    @nobody2937 2 роки тому

    Excellent Tutorial .... Thank you ...

  • @hsh7677
    @hsh7677 3 роки тому +2

    Thank you!!

  • @develxper7931
    @develxper7931 2 роки тому

    This dude is an absolute legend

  • @renzy4584
    @renzy4584 2 роки тому

    Amazing!! Some real stuff!!

  • @attajilani
    @attajilani Рік тому

    Impressive, wonderful python skills.

  • @frankkoslowski6917
    @frankkoslowski6917 2 роки тому

    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.

  • @anilawasiya3642
    @anilawasiya3642 2 роки тому

    omg awesome content I am learning for my passion in physics

  • @KylianMbappe07303
    @KylianMbappe07303 Місяць тому

    54:45 for =anyone who didnt understand, learn aprtial derivatives and integration multivariable one is constant while other is changing and vise versa

  • @upgraduate
    @upgraduate Рік тому

    Very good tutorial, thank you! I

  • @maksudulhossainjewel378
    @maksudulhossainjewel378 2 роки тому +1

    Can you please explain this part E = np.swapaxes(E, 0, -1)? Why is -1 the element or inner axis?

  • @athalm8289
    @athalm8289 Рік тому

    Thank you, Luke. Can you upload the meshgrids diagram , thanks!

  • @onadav
    @onadav 2 роки тому +1

    great! I am back to python thanks to you. what about the Maxwell equations?

  • @kevinsweeney2809
    @kevinsweeney2809 11 місяців тому

    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.

  • @diegofernandez8881
    @diegofernandez8881 3 роки тому +2

    Thanks, and please continue (:

  • @Arkantosi
    @Arkantosi Рік тому

    I never compliment people but...this dude is fantastic.

  • @shivpratapsingh5766
    @shivpratapsingh5766 2 роки тому +1

    You are a legend

  • @renukavelu1701
    @renukavelu1701 3 роки тому +3

    I enjoyed learning!! Please do more such tutorials. If possible, please share the codes too:)

    • @renukavelu1701
      @renukavelu1701 3 роки тому

      could you explain why this code doesn't work for the last part of the 1st exercise? x[dydx==0]

    • @pratyushprakashpatra7062
      @pratyushprakashpatra7062 2 роки тому

      @@renukavelu1701 Because it's never exactly equal to 0. We have to find the value for which it is closest to 0

  • @mariomuysensual
    @mariomuysensual 2 роки тому

    You are amazing dude

  • @user-ek6rf7dw5d
    @user-ek6rf7dw5d 8 місяців тому +1

    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.

  • @TheGmr140
    @TheGmr140 2 роки тому

    very helpful video, thanks for this. very nice

  • @idotsameret5144
    @idotsameret5144 2 роки тому +1

    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

  • @rio_agustian_
    @rio_agustian_ 2 роки тому +1

    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

  • @michellebaltazar2447
    @michellebaltazar2447 2 роки тому

    Thank you so much!!!

  • @ramacharan2825
    @ramacharan2825 Рік тому +1

    thanks yu sooo much ,you are awesome .

  • @alvarobyrne
    @alvarobyrne Рік тому

    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

  • @man9mj
    @man9mj Рік тому

    love your content.

  • @nicholas.hutton
    @nicholas.hutton 3 роки тому +5

    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.

    • @MrPSolver
      @MrPSolver  3 роки тому +8

      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.

    • @Piipolinoo
      @Piipolinoo 3 роки тому +7

      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.

  • @robbietorkelsonn8509
    @robbietorkelsonn8509 2 роки тому

    x = np.linspace(1,10,100)
    f=vectorize(lambda x: 1/x**2 * np.sin(x))
    dxdy=gradient(f(x), x)
    that is where the vectorize comes in

  • @kennethstephani692
    @kennethstephani692 3 місяці тому

    Epic video!!!

  • @BijouBakson
    @BijouBakson 2 місяці тому

    Thank you very much

  • @Ligress
    @Ligress Рік тому

    brilliant series, many people say that scientists use NumPy, scipy but you showed "HOW TO DO IT"

  • @caiolaytynher5994
    @caiolaytynher5994 2 роки тому +2

    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])

    • @MrPSolver
      @MrPSolver  2 роки тому +1

      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.

    • @caiolaytynher5994
      @caiolaytynher5994 2 роки тому

      @@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.

  • @anupkulkarni6986
    @anupkulkarni6986 9 місяців тому

    Hey man ,you got one new subscriber 😊

  • @rasin9391
    @rasin9391 2 роки тому +2

    love the camera dude

  • @jowadulkader9006
    @jowadulkader9006 Рік тому

    Thank you.

  • @vasanthibns3992
    @vasanthibns3992 3 місяці тому

    Hey! Thank you so much for the video! As a beginner, I found this really helpful!
    13:59 when I tried doing names[first_letter_j] I got an error saying that "TypeError: Only integer scalar arrays can be converted to a scalar index"
    31:30 Here the function appears to have derivative = 0 between 2 and 6, but we have values 1.472 and 4.613. Is the method really working?
    Can you please clarify this?

  • @haliluya4217
    @haliluya4217 Рік тому

    I think in question 4,the last term of y-axis should be E(t/k) rather than E(tk)

  • @baburaosimma9784
    @baburaosimma9784 3 місяці тому

    You have used np.cumsum() and sum() for doing the integration ..which one is we follow for integration ?

  • @solounomas0
    @solounomas0 Рік тому

    so useful