1 00:00:00,000 --> 00:00:09,267 [MUSIC] 2 00:00:09,267 --> 00:00:11,542 Hi, I'm Craig and I'm a developer. 3 00:00:11,542 --> 00:00:14,952 In this course we're going to be taking a look at Python's wonderful data 4 00:00:14,952 --> 00:00:16,490 library, NumPy. 5 00:00:16,490 --> 00:00:18,880 You'll find NumPy in all sorts of applications, and 6 00:00:18,880 --> 00:00:23,000 therefore, it's fairly critical that you have an understanding of its fundamentals. 7 00:00:23,000 --> 00:00:25,500 It appears in every direction you may head in Python. 8 00:00:25,500 --> 00:00:28,330 Should you plan to get into data analysis, there's scientific computing, or 9 00:00:28,330 --> 00:00:31,820 even machine learning, you're going to bump into NumPy and 10 00:00:31,820 --> 00:00:33,850 that's what this course is all about. 11 00:00:33,850 --> 00:00:35,010 It's an introduction. 12 00:00:35,010 --> 00:00:37,700 I want to introduce you to the library early on. 13 00:00:37,700 --> 00:00:40,610 I'll walk through hands-on examples that will give you a great introduction 14 00:00:40,610 --> 00:00:44,430 to the library, its main concepts and the surrounding terminology. 15 00:00:44,430 --> 00:00:46,780 When you've complete the course, you'll have a great foundation and 16 00:00:46,780 --> 00:00:50,680 you'll know where to turn when you need more specific information. 17 00:00:50,680 --> 00:00:54,240 But, before we get started, let's take some time to make sure that you're 18 00:00:54,240 --> 00:00:56,070 familiar with your learning environment. 19 00:00:56,070 --> 00:00:59,580 First off, there are some prerequisites to this course, and I'd love for you to make 20 00:00:59,580 --> 00:01:03,350 sure that we're on the same page about where you are in your coding journey. 21 00:01:03,350 --> 00:01:08,270 There's speed control on the video player, so please feel free to speed me up or slow 22 00:01:08,270 --> 00:01:12,650 me down, pause me, make me repeat myself, whatever you like, I won't mind at all. 23 00:01:12,650 --> 00:01:15,420 You are in complete control of your learning. 24 00:01:15,420 --> 00:01:18,290 A quick reminder, there are notes attached to each video. 25 00:01:18,290 --> 00:01:21,180 This section is usually filled with additional information that will 26 00:01:21,180 --> 00:01:24,900 enhance your knowledge should you want to dive deeper into related topics. 27 00:01:24,900 --> 00:01:26,390 Get in the habit of checking this space, and 28 00:01:26,390 --> 00:01:30,990 I'll do my best to remind you when I've put info there that you just have to see. 29 00:01:32,220 --> 00:01:33,080 One more tip, 30 00:01:33,080 --> 00:01:36,720 remember that there is a community of fellow learners also taking this course. 31 00:01:36,720 --> 00:01:38,510 I encourage you to lean on each other. 32 00:01:38,510 --> 00:01:40,330 If you have a question, make sure to ask it. 33 00:01:40,330 --> 00:01:43,030 Our community is very friendly and approachable. 34 00:01:43,030 --> 00:01:43,870 Also, remember, 35 00:01:43,870 --> 00:01:47,340 nothing helps to cement your learning better than answering a question. 36 00:01:47,340 --> 00:01:49,780 Make sure to check out the community throughout the course, and 37 00:01:49,780 --> 00:01:52,460 see if you can help out a fellow learner. 38 00:01:52,460 --> 00:01:55,920 We've established that NumPy is extremely popular in many fields of 39 00:01:55,920 --> 00:01:57,670 the Python landscape. 40 00:01:57,670 --> 00:01:59,410 But what is it exactly? 41 00:01:59,410 --> 00:02:02,010 NumPy is short for numerical Python. 42 00:02:02,010 --> 00:02:03,980 It deals with numbers. 43 00:02:03,980 --> 00:02:07,360 So that makes sense, all those applications that I mentioned would indeed 44 00:02:07,360 --> 00:02:10,210 need to use numbers and math equations in some shape or form. 45 00:02:11,430 --> 00:02:15,690 But as someone who is actively learning Python, you might cleverly state, 46 00:02:15,690 --> 00:02:19,300 wait a second, I can use numbers and do math just fine in plain old Python. 47 00:02:19,300 --> 00:02:20,120 What's the big deal? 48 00:02:20,120 --> 00:02:21,920 Why do we need this? 49 00:02:21,920 --> 00:02:25,390 That's a wonderful question and the short answer is that NumPy is much 50 00:02:25,390 --> 00:02:29,850 faster than the straight Python approach, no matter how great of a coder you are. 51 00:02:29,850 --> 00:02:32,340 It leans on a paradigm which we'll get into here shortly called 52 00:02:32,340 --> 00:02:33,920 array programming. 53 00:02:33,920 --> 00:02:37,530 It completely removes the need to loop over your data which speeds things up 54 00:02:37,530 --> 00:02:38,160 tremendously. 55 00:02:39,535 --> 00:02:42,290 NumPy also provides additional mathematical abilities 56 00:02:42,290 --> 00:02:44,420 not available in standard Python. 57 00:02:44,420 --> 00:02:47,300 Many numerical concepts have been extracted away for you and 58 00:02:47,300 --> 00:02:49,020 provided as functions. 59 00:02:49,020 --> 00:02:53,260 Chances are you probably aren't going to use all of those helper functions. 60 00:02:53,260 --> 00:02:55,650 However, the applications that you're building, you know, 61 00:02:55,650 --> 00:02:58,570 the ones that are relying on the library, they most likely will. 62 00:02:59,665 --> 00:03:03,603 NumPy exposes concepts from linear algebra, matrix multiplication, 63 00:03:03,603 --> 00:03:07,270 fourier transformations and many more themes that you might remember from 64 00:03:07,270 --> 00:03:10,060 your math class if math is in your area of study. 65 00:03:10,060 --> 00:03:14,120 Now, just a heads up, it's totally fine is math isn't your jam. 66 00:03:14,120 --> 00:03:15,200 It really doesn't need to be. 67 00:03:15,200 --> 00:03:17,330 That's kind of the beauty of these abstractions. 68 00:03:17,330 --> 00:03:19,560 You'll use them when you need them. 69 00:03:19,560 --> 00:03:22,280 My advice is just to stay focus on where we're headed and 70 00:03:22,280 --> 00:03:25,310 don't let the shiny tools and terms distract you too much. 71 00:03:25,310 --> 00:03:28,840 I'll point out what I think is important at this part of your learning journey. 72 00:03:28,840 --> 00:03:29,910 Now, believe it or 73 00:03:29,910 --> 00:03:34,620 not, that was the short answer to the why would you want to use NumPy question. 74 00:03:34,620 --> 00:03:37,260 The long answer is gonna take me a couple of videos 75 00:03:37,260 --> 00:03:39,280 to get you to see the beauty that is NumPy. 76 00:03:40,500 --> 00:03:43,410 One of the more challenging tasks of picking up NumPy is simply just 77 00:03:43,410 --> 00:03:46,200 remembering to how to use the object that it provides. 78 00:03:46,200 --> 00:03:49,000 So I was thinking of facing that challenge head on. 79 00:03:49,000 --> 00:03:49,950 Let's do this. 80 00:03:49,950 --> 00:03:52,250 Let's build a Jupiter Notebook together. 81 00:03:52,250 --> 00:03:55,620 And then you'd have a reference, and we can kind of treat it like a cheat sheet. 82 00:03:55,620 --> 00:03:57,060 You can then quickly glance at it or 83 00:03:57,060 --> 00:03:59,640 even practice some more with the datasets that we build up. 84 00:03:59,640 --> 00:04:00,140 Sound good? 85 00:04:01,240 --> 00:04:03,650 Speaking of practice, that gives me a great idea. 86 00:04:03,650 --> 00:04:06,790 Have you heard of the movement called 100 days of code? 87 00:04:06,790 --> 00:04:11,080 It's a wonderful idea that the life-long learner, Alexander Callaway came up with. 88 00:04:11,080 --> 00:04:12,260 The way it works is this, 89 00:04:12,260 --> 00:04:16,780 you publicly commit to coding at least an hour a day for 100 days. 90 00:04:16,780 --> 00:04:19,470 You post about it on social media, usually Twitter, and 91 00:04:19,470 --> 00:04:21,150 you hold yourself accountable. 92 00:04:21,150 --> 00:04:23,080 It's wonderful for learning. 93 00:04:23,080 --> 00:04:25,170 Steady practice will strengthen your skills. 94 00:04:25,170 --> 00:04:27,780 It creates a great habit of learning. 95 00:04:27,780 --> 00:04:32,420 It also seems like a great way to explore the NumPy array data structure. 96 00:04:32,420 --> 00:04:34,970 We can use it to track and analyze our time. 97 00:04:34,970 --> 00:04:39,030 The only downside that I can see is that it might create some pretty mega tweets. 98 00:04:39,030 --> 00:04:42,480 If you are committing to learning NumPy and creating a log to help track and 99 00:04:42,480 --> 00:04:44,710 analyze your 100 days of code in NumPy, 100 00:04:44,710 --> 00:04:48,760 reporting on your learning is going to create a tongue twister of a tweet. 101 00:04:48,760 --> 00:04:49,330 You'll figure it out. 102 00:04:50,380 --> 00:04:51,480 So what are we waiting for? 103 00:04:51,480 --> 00:04:53,510 What do you say we get things all set up?