title
Python Tutorial | Python Tutorial For Beginners - Full Course | Python Programming | Simplilearn

description
🔥 Purdue Post Graduate Program In AI And Machine Learning: https://www.simplilearn.com/pgp-ai-machine-learning-certification-training-course?utm_campaign=Python-Sb8JDqeq74s&utm_medium=Descriptionff&utm_source=youtube 🔥Professional Certificate Course In AI And Machine Learning by IIT Kanpur (India Only): https://www.simplilearn.com/iitk-professional-certificate-course-ai-machine-learning?utm_campaign=23AugustTubebuddyExpPCPAIandML&utm_medium=DescriptionFF&utm_source=youtube 🔥AI Engineer Masters Program (Discount Code - YTBE15): https://www.simplilearn.com/masters-in-artificial-intelligence?utm_campaign=SCE-AIMasters&utm_medium=DescriptionFF&utm_source=youtube 🔥AI & Machine Learning Bootcamp(US Only): https://www.simplilearn.com/ai-machine-learning-bootcamp?utm_campaign=Python-Sb8JDqeq74s&utm_medium=Descriptionff&utm_source=youtube This video on Python will take you through all the basics and advanced concepts present in Python programming language. You will learn about data types, variables, lists, tuples, dictionaries, and a lot more. You will understand how to use decision-making statements and loops in Python. You will get an idea about creating user-defined functions and learn the various object-oriented programming concepts along with threading and Python scripting. Then, you will learn the various machine learning libraries available in Python, which includes NumPy, Pandas, Matplotlib, Scikit-Learn. Finally, you will come across a few important interview questions that you could face in any Python interview. Now, let's dive into learning Python in detail. Below topics are explained in this Python tutorial: Introduction (0:00) Python installation in Windows 10 (00:33) Jupyter Notebook tutorial (04:02) Python Variables (22:42) Python Numbers tutorial (47:00) Python Tuples tutorial (1:19:11) Strings in Python (01:39:41) Python Sets & Dictionaries (02:01:57) Python if,else statements (02:20:24) Python Loops tutorial (02:32:48) For Loop in Python (02:54:49) While Loop in Python (03:13:57) Arrays in Python (03:44:20) Functions in Python (03:57:20) Python Objects & Classes (04:12:48) Python Threading (04:49:08) Python scripting for beginners (05:03:18) Top 5 Python libraries (05:27:11) NumPy tutorial (05:42:55) Python Pandas (06:12:59) MatplotLib tutorial (06:58:18) Scikit-Learn tutorial (07:50:09) Web scraping using Python (08:33:43) How to become a Python developer (09:11:41) Python interview questions and answers (09:21:08) By the end of this tutorial you will learn to write programs in Python and basics of using Python for Machine learning and Data Science applications. To learn more about Python Programming, subscribe to our YouTube channel: https://www.youtube.com/user/Simplilearn?sub_confirmation=1 Watch more videos on Python Training: https://www.youtube.com/watch?v=syH5OneJb-U&list=PLEiEAq2VkUUKoW1o-A-VEmkoGKSC26i_I #PythonCourse #PythonFullCourse #LearnPythonIn10Hours #PythonCoding #pythontutorial #pythonforbeginners #pythonprogrammingforbeginners #pythontraining #pythontutorialforbeginners #numpypythontutorial #pythonsimplilearn #simplilearn 🔥Explore our FREE Courses: https://www.simplilearn.com/skillup-free-online-courses?utm_campaign=Python&utm_medium=Description&utm_source=youtube ➡️ About Post Graduate Program In AI And Machine Learning This AI ML course is designed to enhance your career in AI and ML by demystifying concepts like machine learning, deep learning, NLP, computer vision, reinforcement learning, and more. You'll also have access to 4 live sessions, led by industry experts, covering the latest advancements in AI such as generative modeling, ChatGPT, OpenAI, and chatbots. ✅ Key Features - Post Graduate Program certificate and Alumni Association membership - Exclusive hackathons and Ask me Anything sessions by IBM - 3 Capstones and 25+ Projects with industry data sets from Twitter, Uber, Mercedes Benz, and many more - Master Classes delivered by Purdue faculty and IBM experts - Simplilearn's JobAssist helps you get noticed by top hiring companies - Gain access to 4 live online sessions on latest AI trends such as ChatGPT, generative AI, explainable AI, and more - Learn about the applications of ChatGPT, OpenAI, Dall-E, Midjourney & other prominent tools ✅ Skills Covered - ChatGPT - Generative AI - Explainable AI - Generative Modeling - Statistics - Python - Supervised Learning - Unsupervised Learning - NLP - Neural Networks - Computer Vision - And Many More… 👉 Learn More At: 🔥 Purdue Post Graduate Program In AI And Machine Learning: https://www.simplilearn.com/pgp-ai-machine-learning-certification-training-course?utm_campaign=Python-Sb8JDqeq74s&utm_medium=Description&utm_source=youtube 🔥AI & Machine Learning Bootcamp(US Only): https://www.simplilearn.com/ai-machine-learning-bootcamp?utm_campaign=Python-Sb8JDqeq74s&utm_medium=Description&utm_source=youtube 🔥🔥 Interested in Attending Live Classes? Call Us: IN - 18002127688 / US - +18445327688

detail
{'title': 'Python Tutorial | Python Tutorial For Beginners - Full Course | Python Programming | Simplilearn', 'heatmap': [{'end': 1441.492, 'start': 1075.143, 'weight': 0.88}, {'end': 2152.277, 'start': 1787.359, 'weight': 0.828}, {'end': 3589.694, 'start': 3222.169, 'weight': 1}, {'end': 4660.09, 'start': 3937.186, 'weight': 0.827}, {'end': 6453.338, 'start': 5010.802, 'weight': 0.734}, {'end': 8609.579, 'start': 7882.407, 'weight': 0.813}, {'end': 10039.232, 'start': 9314.486, 'weight': 0.737}, {'end': 11473.47, 'start': 10750.033, 'weight': 0.768}, {'end': 15770.455, 'start': 15405.15, 'weight': 0.72}, {'end': 17926.125, 'start': 17560.896, 'weight': 0.722}, {'end': 35836.115, 'start': 35480, 'weight': 0.913}], 'summary': 'This python tutorial covers python 3.7.1 installation, jupyter notebook basics, python fundamentals, working with lists, tuples, strings, dictionaries, sets, control structures, python programming concepts, threading, automation, libraries for data science, numpy array efficiency, pandas data manipulation, data visualization, web scraping, wine quality analysis, and data visualization in python, providing comprehensive learning with practical examples and quantifiable data.', 'chapters': [{'end': 901.842, 'segs': [{'end': 267.652, 'src': 'embed', 'start': 237.878, 'weight': 4, 'content': [{'end': 241.839, 'text': 'So I hope everything was clear and you were successfully able to install Python.', 'start': 237.878, 'duration': 3.961}, {'end': 243.541, 'text': 'Welcome to Simply Learn.', 'start': 242.239, 'duration': 1.302}, {'end': 246.064, 'text': "That's www.simplylearn.com.", 'start': 243.581, 'duration': 2.483}, {'end': 247.306, 'text': 'Get certified.', 'start': 246.385, 'duration': 0.921}, {'end': 248.247, 'text': 'Get ahead.', 'start': 247.586, 'duration': 0.661}, {'end': 253.615, 'text': "Let's go ahead and take a look at the Jupyter Notebook for doing your Python programming in.", 'start': 248.708, 'duration': 4.907}, {'end': 256.559, 'text': "So we're going to cover the basics of the Jupyter Notebook.", 'start': 253.935, 'duration': 2.624}, {'end': 258.882, 'text': "I'm showing you how it works and what it looks like.", 'start': 256.918, 'duration': 1.964}, {'end': 261.385, 'text': "Let's go ahead and start with the install.", 'start': 259.161, 'duration': 2.224}, {'end': 267.652, 'text': "If you go to jupiter.org, that's J-U-P-Y-T-E-R dot O-R-G.", 'start': 261.625, 'duration': 6.027}], 'summary': 'Successfully install python and explore jupyter notebook for python programming at jupyter.org', 'duration': 29.774, 'max_score': 237.878, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s237878.jpg'}, {'end': 306.089, 'src': 'embed', 'start': 281.283, 'weight': 3, 'content': [{'end': 287.304, 'text': "So we have Jupyter Notebook and then we have the Anaconda setup, and that's www.anaconda.com.", 'start': 281.283, 'duration': 6.021}, {'end': 289.024, 'text': 'You just go up to the downloads.', 'start': 287.544, 'duration': 1.48}, {'end': 298.207, 'text': "Once you're under the downloads, you'll see in the Anaconda that they have it set for version 3.7 or 2.7.", 'start': 289.685, 'duration': 8.522}, {'end': 306.089, 'text': "I generally work in the newer version, although I did have to reset my Anaconda to 3.6 for working with Google's TensorFlow,", 'start': 298.207, 'duration': 7.882}], 'summary': 'Anaconda offers versions 3.7 and 2.7, but can be reset for 3.6 for tensorflow.', 'duration': 24.806, 'max_score': 281.283, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s281283.jpg'}, {'end': 446.112, 'src': 'embed', 'start': 419.781, 'weight': 5, 'content': [{'end': 424.567, 'text': "You'll see over here I have applications on and it says base root.", 'start': 419.781, 'duration': 4.786}, {'end': 431.655, 'text': 'What you find out is if you click on environments on the left hand side, base root is the one that that defaults to.', 'start': 424.867, 'duration': 6.788}, {'end': 439.044, 'text': "But I also have my data science, I have my stock poll, I have another one that's called no GPU because I was working with some GPU setup.", 'start': 431.675, 'duration': 7.369}, {'end': 441.066, 'text': 'You can create as many environments as you want.', 'start': 439.264, 'duration': 1.802}, {'end': 442.868, 'text': 'I can go down here and create a new environment.', 'start': 441.086, 'duration': 1.782}, {'end': 446.112, 'text': 'I can tell it what I want in that environment, which version of Python.', 'start': 443.109, 'duration': 3.003}], 'summary': 'The platform allows users to create multiple environments with different configurations and versions of python.', 'duration': 26.331, 'max_score': 419.781, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s419781.jpg'}, {'end': 848.949, 'src': 'embed', 'start': 821.272, 'weight': 0, 'content': [{'end': 823.954, 'text': "So you can see it's pretty straightforward as far as the setup.", 'start': 821.272, 'duration': 2.682}, {'end': 828.297, 'text': 'And these are the most basic editings you can do, of course, is just to put your code in.', 'start': 824.254, 'duration': 4.043}, {'end': 831.279, 'text': "And because it's such an easy input.", 'start': 828.557, 'duration': 2.722}, {'end': 838.024, 'text': "it's so easy just to keep scrolling down and adding new cells in so that you can go back up and execute different portions of your program.", 'start': 831.279, 'duration': 6.745}, {'end': 842.426, 'text': "Let's go ahead and do an input, and we'll set up There we go.", 'start': 838.264, 'duration': 4.162}, {'end': 844.587, 'text': "Let's add a space on there just so it looks nice.", 'start': 842.446, 'duration': 2.141}, {'end': 848.949, 'text': "And then we'll put print, hi, comma, name.", 'start': 845.228, 'duration': 3.721}], 'summary': 'The setup is straightforward, allowing easy input and editing of code, with the ability to execute different portions of the program.', 'duration': 27.677, 'max_score': 821.272, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s821272.jpg'}], 'start': 5.202, 'title': 'Python and jupyter basics', 'summary': 'Covers python 3.7.1 installation on windows, jupyter notebook basics, and creating python environments through anaconda. it also discusses the limitations of jupyter notebook for multi-processing and the importance of choosing conda or pip for package management.', 'chapters': [{'end': 419.361, 'start': 5.202, 'title': 'Python installation and jupyter notebook basics', 'summary': 'Covers the installation process of python on a windows system, focusing on version 3.7.1, and also delves into the basics of jupyter notebook, emphasizing its installation through anaconda and the ease of creating different python environments.', 'duration': 414.159, 'highlights': ['The installation process for Python on a Windows system is demonstrated, focusing on version 3.7.1 and emphasizing the use of the executable installer and the significance of adding Python 3.7 to path for simplifying command line access. The tutorial provides a step-by-step demonstration of installing Python 3.7.1 on a Windows system, highlighting the use of the executable installer and the importance of adding Python 3.7 to path for simplifying command line access.', 'The tutorial showcases the testing of Python installation through both the IDLE for Python and the command line interpreter, emphasizing their roles as starting points for Python coding. The tutorial demonstrates the testing of Python installation through both the IDLE for Python and the command line interpreter, highlighting their significance as starting points for Python coding.', 'The chapter introduces the installation of Jupyter Notebook through Anaconda, emphasizing its flexibility in creating different Python environments and its compatibility with various operating systems. The tutorial introduces the installation of Jupyter Notebook through Anaconda, emphasizing its flexibility in creating different Python environments and its compatibility with various operating systems.']}, {'end': 901.842, 'start': 419.781, 'title': 'Jupyter notebook basics', 'summary': 'Covers setting up and using jupyter notebook, creating and managing environments, and running python code, emphasizing the importance of sticking with either conda or pip and the limitations of jupyter notebook for multi-processing.', 'duration': 482.061, 'highlights': ["The importance of sticking with either conda or pip in an environment to avoid problems with imports and reliance It's important to stick with conda or stick with pip in an environment to avoid problems with imports and reliance, as mixing the two can lead to issues. Conda looks for all dependencies, making it suitable for rush situations, while pip is preferable for tracking installations.", 'The limitation of Jupyter Notebook for multi-processing due to only setting up one kernel Jupyter Notebook only sets up one kernel, limiting its functionality for multi-processing. While multi-threading works fine, multi-processing can cause problems as it only opens up one kernel to run the program.', 'Different ways to run code in Jupyter Notebook, including shortcuts and options for running cells In Jupyter Notebook, code can be run using the run arrow or the shift enter shortcut. Additionally, there are options such as restart and run all, run cells and insert below, and other choices for running code.']}], 'duration': 896.64, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s5202.jpg', 'highlights': ['The tutorial provides a step-by-step demonstration of installing Python 3.7.1 on a Windows system, highlighting the use of the executable installer and the importance of adding Python 3.7 to path for simplifying command line access.', 'The tutorial demonstrates the testing of Python installation through both the IDLE for Python and the command line interpreter, highlighting their significance as starting points for Python coding.', 'The tutorial introduces the installation of Jupyter Notebook through Anaconda, emphasizing its flexibility in creating different Python environments and its compatibility with various operating systems.', "It's important to stick with conda or stick with pip in an environment to avoid problems with imports and reliance, as mixing the two can lead to issues.", 'Jupyter Notebook only sets up one kernel, limiting its functionality for multi-processing. While multi-threading works fine, multi-processing can cause problems as it only opens up one kernel to run the program.', 'In Jupyter Notebook, code can be run using the run arrow or the shift enter shortcut. Additionally, there are options such as restart and run all, run cells and insert below, and other choices for running code.']}, {'end': 3455.725, 'segs': [{'end': 995.191, 'src': 'embed', 'start': 938.765, 'weight': 0, 'content': [{'end': 940.667, 'text': 'In this case, enter your name, Richard.', 'start': 938.765, 'duration': 1.902}, {'end': 946.551, 'text': "Enter And it won't print, hope to see you in class soon, until I click on this cell and run it.", 'start': 940.767, 'duration': 5.784}, {'end': 949.092, 'text': "And then you'll see, hope to see you in class soon.", 'start': 946.951, 'duration': 2.141}, {'end': 950.533, 'text': 'So you have a lot of control.', 'start': 949.132, 'duration': 1.401}, {'end': 952.174, 'text': 'You can work on one piece of code.', 'start': 950.613, 'duration': 1.561}, {'end': 957.078, 'text': "Maybe you're loading your variables up, and then you can start executing the code based on those variables.", 'start': 952.335, 'duration': 4.743}, {'end': 961.361, 'text': "But you do have to remember, if the problem is in the cell above, you've got to fix that.", 'start': 957.318, 'duration': 4.043}, {'end': 964.803, 'text': "You can't just keep working on the cell below and expect it not to change the answer.", 'start': 961.521, 'duration': 3.282}, {'end': 968.626, 'text': 'Another important thing to notice, this is a title.', 'start': 965.223, 'duration': 3.403}, {'end': 971.729, 'text': 'Use your comments to comment something else.', 'start': 969.787, 'duration': 1.942}, {'end': 977.455, 'text': 'But in Jupyter Notebook, I can come in here to the cell, and I can change the cell type to Markdown.', 'start': 972.05, 'duration': 5.405}, {'end': 984.321, 'text': 'And you can see in Markdown, it changes the colors and everything, and when I run it, I end up with this is a title, this is a bigger title.', 'start': 977.815, 'duration': 6.506}, {'end': 989.146, 'text': "So I can create nice titles in here if I'm working with a project and I'm actually doing a demo.", 'start': 984.561, 'duration': 4.585}, {'end': 991.388, 'text': "I'm actually doing some kind of production.", 'start': 989.466, 'duration': 1.922}, {'end': 995.191, 'text': "I'm showing the graphs, and I've generated the graphs already in my Jupyter notebook.", 'start': 991.408, 'duration': 3.783}], 'summary': 'In jupyter notebook, you can use comments, control code, and create titles in markdown for better visualization and organization.', 'duration': 56.426, 'max_score': 938.765, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s938765.jpg'}, {'end': 1441.492, 'src': 'heatmap', 'start': 1075.143, 'weight': 0.88, 'content': [{'end': 1077.545, 'text': 'And if I wanted to, I could do something.', 'start': 1075.143, 'duration': 2.402}, {'end': 1079.546, 'text': "Let's do this and just change this.", 'start': 1077.565, 'duration': 1.981}, {'end': 1081.087, 'text': 'Double click on it to edit it.', 'start': 1079.866, 'duration': 1.221}, {'end': 1083.269, 'text': 'Below is a graph.', 'start': 1081.568, 'duration': 1.701}, {'end': 1086.217, 'text': 'of a diagonal.', 'start': 1084.01, 'duration': 2.207}, {'end': 1094.707, 'text': 'line. and so we have our title below is a graph of a diagonal line and then we have our nice plot of a diagonal line and I could even break this up.', 'start': 1087.304, 'duration': 7.403}, {'end': 1098.489, 'text': "let's do this insert cell below.", 'start': 1094.707, 'duration': 3.782}, {'end': 1100.81, 'text': "so now I've added a cell below this one.", 'start': 1098.489, 'duration': 2.321}, {'end': 1106.312, 'text': "I'm gonna put this to take our plot show and I'm gonna put it down to cells.", 'start': 1100.81, 'duration': 5.502}, {'end': 1110.754, 'text': "I'm gonna do this one as a markup and we'll do cell type or markdown.", 'start': 1106.312, 'duration': 4.442}, {'end': 1111.694, 'text': 'I call the markup.', 'start': 1110.754, 'duration': 0.94}, {'end': 1122.422, 'text': "we'll say welcome to my simple graph and And so when I run this, it makes a nice markup and then I run this cell and we get a nice plot show.", 'start': 1111.694, 'duration': 10.728}, {'end': 1127.206, 'text': 'So we have a plot plot, and I run it, and you can see welcome to my simple graph.', 'start': 1123.182, 'duration': 4.024}, {'end': 1129.248, 'text': "So everything's nice and orderly.", 'start': 1127.687, 'duration': 1.561}, {'end': 1135.675, 'text': 'This is kind of nice because once you set this up, you can see how you can create a nice presentation while working on your project.', 'start': 1129.469, 'duration': 6.206}, {'end': 1141.08, 'text': "You don't have to even get out of your project to generate the information you want to show to the shareholders.", 'start': 1135.775, 'duration': 5.305}, {'end': 1144.464, 'text': "And if it takes too long, let's say we're running this script.", 'start': 1141.54, 'duration': 2.924}, {'end': 1146.587, 'text': "You know what, let's just kind of overload it here.", 'start': 1144.685, 'duration': 1.902}, {'end': 1148.049, 'text': "We'll do a lot of plotting.", 'start': 1146.607, 'duration': 1.442}, {'end': 1150.693, 'text': "I'm going to run it, and it happened too fast.", 'start': 1148.21, 'duration': 2.483}, {'end': 1153.918, 'text': 'If your kernel gets stuck, you can always interrupt the kernel.', 'start': 1150.994, 'duration': 2.924}, {'end': 1155.5, 'text': 'You can restart it or interrupt it.', 'start': 1153.978, 'duration': 1.522}, {'end': 1159.954, 'text': "Usually you restart it because it's loaded data in there and you want to reload the data.", 'start': 1156.332, 'duration': 3.622}, {'end': 1168.918, 'text': "But if I restart it here, remember we did that before? Whatever I had that ran up here where I set hello up to hello simply learn, that's gone.", 'start': 1160.294, 'duration': 8.624}, {'end': 1173.12, 'text': 'I have to rerun this cell to reload that data into the variable hello.', 'start': 1169.058, 'duration': 4.062}, {'end': 1178.602, 'text': 'And of course I can do run cells and select it below or run cells and just run all.', 'start': 1173.38, 'duration': 5.222}, {'end': 1180.463, 'text': 'I can run all and it goes all the way to the bottom.', 'start': 1178.803, 'duration': 1.66}, {'end': 1183.705, 'text': "So it's not a big deal if you forget, but you can easily run all the cells.", 'start': 1180.703, 'duration': 3.002}, {'end': 1186.507, 'text': 'I do want to point out one thing since we did a run all.', 'start': 1184.025, 'duration': 2.482}, {'end': 1189.969, 'text': "It's still doing some plotting in here and coming down for whatever reason.", 'start': 1186.527, 'duration': 3.442}, {'end': 1193.872, 'text': "If you go to the top, you'll see up here in the tab there's an hourglass.", 'start': 1190.229, 'duration': 3.643}, {'end': 1195.913, 'text': 'That means this kernel is running.', 'start': 1194.252, 'duration': 1.661}, {'end': 1197.654, 'text': "We'll go ahead and interrupt this kernel.", 'start': 1195.993, 'duration': 1.661}, {'end': 1199.936, 'text': "And I'll take a moment to interrupt the kernel and stop it.", 'start': 1197.834, 'duration': 2.102}, {'end': 1201.677, 'text': "You'll see that shut down in just a minute.", 'start': 1200.016, 'duration': 1.661}, {'end': 1204.538, 'text': "There's so many cool things you can do with Jupyter.", 'start': 1202.437, 'duration': 2.101}, {'end': 1205.339, 'text': 'I get so excited.', 'start': 1204.558, 'duration': 0.781}, {'end': 1206.379, 'text': "It's so simple.", 'start': 1205.699, 'duration': 0.68}, {'end': 1212.382, 'text': "There's not like a huge number of hidden commands on the page, although certainly there's all kinds of back-end stuff you can do.", 'start': 1206.399, 'duration': 5.983}, {'end': 1220.126, 'text': "One of the things you can do in here is I can go up to File and if you go under File, you'll see down here Download As,", 'start': 1212.643, 'duration': 7.483}, {'end': 1223.368, 'text': 'and I can download it as a notebook, which it automatically saves as.', 'start': 1220.126, 'duration': 3.242}, {'end': 1230.892, 'text': 'I can download it as a Python.py file, so it would remove the non-Python stuff in there, and you just have your regular Python file.', 'start': 1223.708, 'duration': 7.184}, {'end': 1233.575, 'text': 'And I can also download it as an HTML.', 'start': 1231.132, 'duration': 2.443}, {'end': 1238.861, 'text': "There's also the JS slice, REST, Markdown, but I love the HTML, my goodness.", 'start': 1233.655, 'duration': 5.206}, {'end': 1241.885, 'text': "I click on here in the machine, but I'm going to go ahead and open it.", 'start': 1239.242, 'duration': 2.643}, {'end': 1246.791, 'text': 'And it opens up in my browser, and I can actually take this code and just put it onto a web page.', 'start': 1242.265, 'duration': 4.526}, {'end': 1250.315, 'text': 'So now I have my HTML code of what I just did.', 'start': 1247.231, 'duration': 3.084}, {'end': 1252.276, 'text': "you know, that's a lot of that's pretty cool.", 'start': 1250.635, 'duration': 1.641}, {'end': 1254.457, 'text': 'you can flip that over so quick and easy.', 'start': 1252.276, 'duration': 2.181}, {'end': 1255.878, 'text': "so we've covered a lot of stuff.", 'start': 1254.457, 'duration': 1.421}, {'end': 1257.999, 'text': "we've covered that it runs in a single cell.", 'start': 1255.878, 'duration': 2.121}, {'end': 1263.321, 'text': "we've covered going through the kernel interrupt, restart, restart, clear output, restart, run.", 'start': 1257.999, 'duration': 5.322}, {'end': 1265.402, 'text': "all. we've discussed cells.", 'start': 1263.321, 'duration': 2.081}, {'end': 1268.403, 'text': 'where you can run the cells below, run, the cells above, run.', 'start': 1265.402, 'duration': 3.001}, {'end': 1269.504, 'text': 'all most common.', 'start': 1268.403, 'duration': 1.101}, {'end': 1270.965, 'text': 'we covered cell type.', 'start': 1269.504, 'duration': 1.461}, {'end': 1275.787, 'text': "we've gone under file and we've seen where you can go ahead and download as a different version.", 'start': 1270.965, 'duration': 4.822}, {'end': 1278.208, 'text': "There's a lot of other things in here, but those are the main ones.", 'start': 1276.027, 'duration': 2.181}, {'end': 1280.11, 'text': 'You can save and create a checkpoint.', 'start': 1278.248, 'duration': 1.862}, {'end': 1281.511, 'text': 'You can rename it.', 'start': 1280.41, 'duration': 1.101}, {'end': 1288.915, 'text': "We clicked up here to rename, but if you're under view, let's say I don't want the header on, I can still just go under file and rename.", 'start': 1281.831, 'duration': 7.084}, {'end': 1293.798, 'text': "So if I don't want to see the header and I want that extra screen space, which I like, I can toggle that on and off.", 'start': 1289.115, 'duration': 4.683}, {'end': 1297.521, 'text': 'I can toggle the toolbar off, put that back on with all those shortcuts.', 'start': 1293.878, 'duration': 3.643}, {'end': 1299.923, 'text': 'And to wrap it up, one more reference.', 'start': 1297.941, 'duration': 1.982}, {'end': 1301.504, 'text': 'Let me just close these out.', 'start': 1300.163, 'duration': 1.341}, {'end': 1308.369, 'text': 'If you do Jupyter Notebook repositories on Git and I just go to trending notebook repositories on the GitHub.', 'start': 1301.944, 'duration': 6.425}, {'end': 1311.052, 'text': "you'll see all kinds of stuff on here that you can go practice with.", 'start': 1308.369, 'duration': 2.683}, {'end': 1312.813, 'text': 'You can pull what somebody else is working on.', 'start': 1311.272, 'duration': 1.541}, {'end': 1315.435, 'text': 'They have Practical AI, MIT Deep Learning, TF2 course.', 'start': 1312.833, 'duration': 2.602}, {'end': 1318.237, 'text': 'TensorFlow examples.', 'start': 1316.756, 'duration': 1.481}, {'end': 1321.979, 'text': "That's the Google TensorFlow I mentioned earlier, which is a neural network.", 'start': 1318.277, 'duration': 3.702}, {'end': 1323.62, 'text': 'Hands-on machine learning.', 'start': 1322.339, 'duration': 1.281}, {'end': 1330.204, 'text': "I don't know what any of these actually are, other than by the name, but you can see they have a lot of stuff that's published on GitHub,", 'start': 1323.64, 'duration': 6.564}, {'end': 1331.585, 'text': 'which helps you get started.', 'start': 1330.204, 'duration': 1.381}, {'end': 1336.368, 'text': "You find something you're interested in, you do a search on GitHub, and you'll find that Jupyter Notebook on there.", 'start': 1331.625, 'duration': 4.743}, {'end': 1337.769, 'text': 'Gets you some hands-on.', 'start': 1336.588, 'duration': 1.181}, {'end': 1339.79, 'text': 'And then just regular coding.', 'start': 1338.089, 'duration': 1.701}, {'end': 1343.832, 'text': 'How do you become a good Python programmer? You write Python code.', 'start': 1340.11, 'duration': 3.722}, {'end': 1344.913, 'text': "That's the basics.", 'start': 1344.072, 'duration': 0.841}, {'end': 1346.995, 'text': 'So thank you for joining us today.', 'start': 1345.353, 'duration': 1.642}, {'end': 1349.597, 'text': 'We covered Anaconda and Jupyter Notebooks.', 'start': 1347.015, 'duration': 2.582}, {'end': 1357.705, 'text': "Now that that's done, we have Richard and Anjali to teach you about Python variables, numbers, data structures like arrays and lists,", 'start': 1349.938, 'duration': 7.767}, {'end': 1362.69, 'text': 'conditional statements, functions, objects, classes, threading and scripting.', 'start': 1357.705, 'duration': 4.985}, {'end': 1369.776, 'text': "I'm Anjali from Simply Learn and today I'll be taking you through one of the most basic topics in Python, Variables.", 'start': 1363.01, 'duration': 6.766}, {'end': 1373.178, 'text': "So here's a very simple statement x equal to 100.", 'start': 1370.256, 'duration': 2.922}, {'end': 1378.98, 'text': "A variable's definition is basically an entity of a program that holds a value.", 'start': 1373.178, 'duration': 5.802}, {'end': 1384.082, 'text': 'So in this case x would be our variable and 100 would be the value it holds.', 'start': 1379.4, 'duration': 4.682}, {'end': 1387.845, 'text': "To better visualize this statement Let's consider a box.", 'start': 1384.402, 'duration': 3.443}, {'end': 1395.957, 'text': 'Now if this box holds a value, say 100, then the name we give to this box, which in our case is x, would be the variable name.', 'start': 1388.186, 'duration': 7.771}, {'end': 1402.547, 'text': 'And 100, that is the content within the box or within the variable, would be the value of the variable.', 'start': 1396.378, 'duration': 6.169}, {'end': 1405.51, 'text': 'Now this is the basics of what a variable is.', 'start': 1402.927, 'duration': 2.583}, {'end': 1412.517, 'text': "As we'll go through the various topics today, you'll have a better understanding of why we use variables and how to use them.", 'start': 1405.95, 'duration': 6.567}, {'end': 1416.841, 'text': "So let's move on to the next topic which is the various data types of variables.", 'start': 1412.937, 'duration': 3.904}, {'end': 1421.264, 'text': 'Before we move on to this, Let me explain to you what data types are.', 'start': 1417.282, 'duration': 3.982}, {'end': 1426.126, 'text': 'If you have dealt with other programming languages before, you probably already know what data type is.', 'start': 1421.544, 'duration': 4.582}, {'end': 1432.909, 'text': "But just in case you haven't, data type is basically the type of value that you assign to the variable.", 'start': 1426.526, 'duration': 6.383}, {'end': 1439.572, 'text': 'So in our previous example where we said x equal to 100, in layman terms 100 is a number.', 'start': 1433.209, 'duration': 6.363}, {'end': 1441.492, 'text': 'So the data type would be number.', 'start': 1439.892, 'duration': 1.6}], 'summary': 'The transcript discusses jupyter notebooks, python programming basics, and anaconda. it also introduces the concept of variables and data types in python.', 'duration': 366.349, 'max_score': 1075.143, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s1075143.jpg'}, {'end': 1432.909, 'src': 'embed', 'start': 1402.927, 'weight': 5, 'content': [{'end': 1405.51, 'text': 'Now this is the basics of what a variable is.', 'start': 1402.927, 'duration': 2.583}, {'end': 1412.517, 'text': "As we'll go through the various topics today, you'll have a better understanding of why we use variables and how to use them.", 'start': 1405.95, 'duration': 6.567}, {'end': 1416.841, 'text': "So let's move on to the next topic which is the various data types of variables.", 'start': 1412.937, 'duration': 3.904}, {'end': 1421.264, 'text': 'Before we move on to this, Let me explain to you what data types are.', 'start': 1417.282, 'duration': 3.982}, {'end': 1426.126, 'text': 'If you have dealt with other programming languages before, you probably already know what data type is.', 'start': 1421.544, 'duration': 4.582}, {'end': 1432.909, 'text': "But just in case you haven't, data type is basically the type of value that you assign to the variable.", 'start': 1426.526, 'duration': 6.383}], 'summary': 'Introduction to variables and data types in programming.', 'duration': 29.982, 'max_score': 1402.927, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s1402927.jpg'}, {'end': 2152.277, 'src': 'heatmap', 'start': 1787.359, 'weight': 0.828, 'content': [{'end': 1798.669, 'text': "So I'll just put 486 and let's print x.", 'start': 1787.359, 'duration': 11.31}, {'end': 1801.011, 'text': 'So all the values within x is printed.', 'start': 1798.669, 'duration': 2.342}, {'end': 1803.213, 'text': "Now let's check the type of x.", 'start': 1801.872, 'duration': 1.341}, {'end': 1806.878, 'text': 'and the type gives tuple.', 'start': 1805.717, 'duration': 1.161}, {'end': 1811.84, 'text': 'So you might be wondering what is the difference between list and tuple.', 'start': 1807.318, 'duration': 4.522}, {'end': 1817.863, 'text': 'Now the core difference between list and tuple is that tuples are immutable.', 'start': 1812.18, 'duration': 5.683}, {'end': 1826.547, 'text': 'So what I mean here is that in case of tuples too, you access each value within it in the same way you do with list.', 'start': 1818.603, 'duration': 7.944}, {'end': 1844.155, 'text': "So if I want to access the value 8 in x right now, I'll just give x within square brackets 1 print this and it outputs 8.", 'start': 1827.068, 'duration': 17.087}, {'end': 1856.479, 'text': 'But now, if I want to change this value, so the way of doing that, as we saw with list, is x of 1 and the value I want to change it to.', 'start': 1844.155, 'duration': 12.324}, {'end': 1861.102, 'text': "so let's say 5 and I run this we get an error.", 'start': 1856.479, 'duration': 4.623}, {'end': 1865.104, 'text': 'So you cannot change the values in case of tuples.', 'start': 1861.663, 'duration': 3.441}, {'end': 1871.146, 'text': 'Once you have stored the value within the variable for a tuple, it remains that way right till the end.', 'start': 1865.564, 'duration': 5.582}, {'end': 1880.91, 'text': 'And in technical terms, this means that tuples are immutable, while lists for which you can change the values, they are mutable.', 'start': 1871.826, 'duration': 9.084}, {'end': 1883.912, 'text': 'So now we have something slightly different.', 'start': 1881.79, 'duration': 2.122}, {'end': 1889.336, 'text': 'When we deal with files, we need a variable which points to a particular file.', 'start': 1884.192, 'duration': 5.144}, {'end': 1892.319, 'text': 'So in general these are called file pointers.', 'start': 1889.897, 'duration': 2.422}, {'end': 1903.948, 'text': "The advantage of having file pointers is that when you need to perform various operations on a file instead of providing the file's entire path name or the file's name every time,", 'start': 1893.079, 'duration': 10.869}, {'end': 1908.132, 'text': 'we can just assign it to a particular variable and use the variable instead.', 'start': 1903.948, 'duration': 4.184}, {'end': 1916.135, 'text': 'So this is exactly the advantage variables have with all other values too but the syntax for doing so with files is slightly different.', 'start': 1908.712, 'duration': 7.423}, {'end': 1922.998, 'text': 'So I give x equal to open and within brackets open quotes enter your file name.', 'start': 1916.475, 'duration': 6.523}, {'end': 1934.503, 'text': "So I want to open say a file called variable underscore com and this is ipynb so it's my python notebook.", 'start': 1923.338, 'duration': 11.165}, {'end': 1939.069, 'text': "and the mode I'd like to open it in, so R.", 'start': 1935.788, 'duration': 3.281}, {'end': 1939.81, 'text': 'Let me run this.', 'start': 1939.069, 'duration': 0.741}, {'end': 1944.492, 'text': "No error, so it's fine, this kind of an assignment is completely legit.", 'start': 1940.33, 'duration': 4.162}, {'end': 1949.234, 'text': "Now we'll check the type of x.", 'start': 1944.772, 'duration': 4.462}, {'end': 1955.376, 'text': 'So as you see here, the type for x is underscore io dot text io wrapper.', 'start': 1949.234, 'duration': 6.142}, {'end': 1960.638, 'text': 'So in Python, this is the particular type assigned to this variable.', 'start': 1956.336, 'duration': 4.302}, {'end': 1964.62, 'text': 'But in general terms, you can refer to them as file pointers.', 'start': 1961.399, 'duration': 3.221}, {'end': 1968.868, 'text': 'Now suppose you want to assign values to multiple variables.', 'start': 1965.967, 'duration': 2.901}, {'end': 1982.554, 'text': 'What you can do here is, instead of having statements like x equal to 5, enter y equal to 10, enter z equal to 7,', 'start': 1969.128, 'duration': 13.426}, {'end': 1997.305, 'text': 'instead of having three such statements, delete open bracket x, y, z within bracket equal to 5, 10, 7..', 'start': 1982.554, 'duration': 14.751}, {'end': 1999.109, 'text': 'And this works exactly the same.', 'start': 1997.305, 'duration': 1.804}, {'end': 2014.205, 'text': "So now if you print x, y and z, you'll see that they have been assigned their respective values.", 'start': 1999.77, 'duration': 14.435}, {'end': 2019.228, 'text': 'Of course the number of variables and the number of values on either side should match.', 'start': 2014.926, 'duration': 4.302}, {'end': 2029.353, 'text': 'So if you put x equal to y, so if you give x, comma y equal to 5, 10, 7, this would result in an error,', 'start': 2019.568, 'duration': 9.785}, {'end': 2035.917, 'text': 'because you have only two variables on your left hand side, while you have three values on your right hand side.', 'start': 2029.353, 'duration': 6.564}, {'end': 2041.6, 'text': 'Now suppose you want to assign the same value to multiple variables.', 'start': 2037.216, 'duration': 4.384}, {'end': 2043.361, 'text': 'In that case you can do.', 'start': 2042.14, 'duration': 1.221}, {'end': 2047.365, 'text': 'Now suppose you want to assign a value to multiple variables.', 'start': 2044.102, 'duration': 3.263}, {'end': 2053.05, 'text': 'Say x equal to 1, y equal to 1, z equal to 1.', 'start': 2047.825, 'duration': 5.225}, {'end': 2062.078, 'text': 'A short form to this as you saw previously would be x, y, z equal to 1, 1, 1.', 'start': 2053.05, 'duration': 9.028}, {'end': 2065.481, 'text': 'But then again you will have to type the same value three times.', 'start': 2062.079, 'duration': 3.402}, {'end': 2071.165, 'text': 'Instead what we can do is x equal to y equal to z equal to 1.', 'start': 2066.101, 'duration': 5.064}, {'end': 2073.246, 'text': 'And this would work perfectly fine.', 'start': 2071.165, 'duration': 2.081}, {'end': 2076.429, 'text': 'So if I print the value of x, y and z now.', 'start': 2073.587, 'duration': 2.842}, {'end': 2081.034, 'text': 'They all have the value 1 stored within them.', 'start': 2078.851, 'duration': 2.183}, {'end': 2088.922, 'text': 'So we have covered the various data types in Python and how you can assign values to a variable in multiple ways.', 'start': 2081.975, 'duration': 6.947}, {'end': 2093.165, 'text': "We'll next move on to the various rules for naming the variables.", 'start': 2089.482, 'duration': 3.683}, {'end': 2097.389, 'text': 'Now there are certain rules that you must follow while naming the variables.', 'start': 2093.846, 'duration': 3.543}, {'end': 2106.016, 'text': "We'll go through each of these rules and simultaneously I'll also demonstrate to you in our notebook the validity of each variable.", 'start': 2097.829, 'duration': 8.187}, {'end': 2111.961, 'text': 'So our first rule is variable name must begin with an alphabet or an underscore.', 'start': 2106.436, 'duration': 5.525}, {'end': 2114.082, 'text': "So, let's move on to our notebook.", 'start': 2112.481, 'duration': 1.601}, {'end': 2121.727, 'text': 'So, abc equal to 100, this should be valid because it starts with an alphabet.', 'start': 2114.602, 'duration': 7.125}, {'end': 2125.549, 'text': 'At the same time, underscore abc would also be valid.', 'start': 2122.087, 'duration': 3.462}, {'end': 2132.413, 'text': "So, if the variable starts with an alphabet or an underscore, it's a valid name for the variable.", 'start': 2127.951, 'duration': 4.462}, {'end': 2138.803, 'text': 'But if we say 3a equal to 10, this would result in an error.', 'start': 2132.814, 'duration': 5.989}, {'end': 2142.927, 'text': 'Of course, because the variable name starts with a number and this is invalid.', 'start': 2139.283, 'duration': 3.644}, {'end': 2147.372, 'text': 'Same way we cannot start the variable name with the special character other than underscore.', 'start': 2143.468, 'duration': 3.904}, {'end': 2152.277, 'text': 'So if I say at the rate abc, this would also result in an error.', 'start': 2147.652, 'duration': 4.625}], 'summary': 'Immutable tuples, file pointers, variable assignment in python.', 'duration': 364.918, 'max_score': 1787.359, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s1787359.jpg'}, {'end': 2794.947, 'src': 'embed', 'start': 2762.206, 'weight': 9, 'content': [{'end': 2765.848, 'text': 'In this case you do not need to mention the last index.', 'start': 2762.206, 'duration': 3.642}, {'end': 2772.351, 'text': "You can just leave it blank and it's automatically understood that you are printing till the very last character of your string.", 'start': 2766.208, 'duration': 6.143}, {'end': 2776.653, 'text': 'And as you see from your 5th index to the very last character has been printed.', 'start': 2773.191, 'duration': 3.462}, {'end': 2786.126, 'text': "Now suppose you give var of 0 to 20 and it's pretty obvious that you do not have 20 characters in this particular string.", 'start': 2777.714, 'duration': 8.412}, {'end': 2788.429, 'text': 'So you do not have 20 indexes.', 'start': 2786.426, 'duration': 2.003}, {'end': 2794.947, 'text': 'So what do you think would happen if I do 0 to 20? Well the entire string is printed.', 'start': 2788.809, 'duration': 6.138}], 'summary': 'Explains string indexing, showing print range, with examples.', 'duration': 32.741, 'max_score': 2762.206, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s2762206.jpg'}, {'end': 3188.859, 'src': 'embed', 'start': 3163.96, 'weight': 4, 'content': [{'end': 3172.945, 'text': "So now although essentially what we are storing is a number 192, because it's enclosed in quotes, it's seen as a string.", 'start': 3163.96, 'duration': 8.985}, {'end': 3175.667, 'text': 'So now x stores a string value.', 'start': 3173.185, 'duration': 2.482}, {'end': 3182.874, 'text': "If I check the value of x, the type of x, you see it's of type str which is a short for string.", 'start': 3176.187, 'duration': 6.687}, {'end': 3188.859, 'text': "Now often when you take input from the user, it's always in a string format.", 'start': 3183.334, 'duration': 5.525}], 'summary': "Storing '192' as a string, not number, for user input.", 'duration': 24.899, 'max_score': 3163.96, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s3163960.jpg'}], 'start': 901.842, 'title': 'Python fundamentals', 'summary': 'Discusses jupyter notebook functions, python variables and data types, file pointers and variable assignments, string operations, python numbers, arithmetic operations, and conversions, emphasizing practical examples and flexibility.', 'chapters': [{'end': 1297.521, 'start': 901.842, 'title': 'Jupyter notebook functions', 'summary': 'Discusses the functionalities of jupyter notebook, covering running cells, creating titles and plots, interrupting the kernel, and downloading files in various formats, emphasizing its flexibility and practicality.', 'duration': 395.679, 'highlights': ['Jupyter Notebook allows for running cells top to bottom, one at a time, providing control over the code execution and output presentation. The ability to run cells individually in Jupyter Notebook allows for precise control over code execution, enhancing the presentation and output of the code.', 'Converting cell types to Markdown in Jupyter Notebook enables the creation of visually appealing titles and text, streamlining the project presentation process. The feature of converting cell types to Markdown in Jupyter Notebook facilitates the creation of visually appealing titles and text, streamlining the project presentation process.', 'Jupyter Notebook provides the capability to generate and display plots inline, offering a seamless experience for visualizing data and results. The ability to generate and display plots inline in Jupyter Notebook offers a seamless experience for visualizing data and results, enhancing the data presentation process.', 'Interrupting the kernel in Jupyter Notebook allows for stopping and resetting the code execution, enabling effective management and troubleshooting of complex scripts. The feature of interrupting the kernel in Jupyter Notebook allows for stopping and resetting the code execution, enabling effective management and troubleshooting of complex scripts.', 'Jupyter Notebook supports downloading files in multiple formats, such as notebook, Python, and HTML, providing versatility in sharing and presenting project outputs. The support for downloading files in multiple formats in Jupyter Notebook, such as notebook, Python, and HTML, provides versatility in sharing and presenting project outputs.']}, {'end': 1883.912, 'start': 1297.941, 'title': 'Python variables and data types', 'summary': 'Covers the basics of python variables, including integer, float, and string data types and their usage, before moving on to discussing list and tuple data types, with practical examples and explanations.', 'duration': 585.971, 'highlights': ['The chapter covers the basics of Python variables, including integer, float, and string data types, with practical examples and explanations.', 'The chapter also discusses list and tuple data types, explaining their usage and the difference between list and tuple.', 'The importance of using GitHub to practice Jupyter Notebook repositories for hands-on experience is highlighted, providing a valuable resource for learners.', 'The chapter emphasizes the significance of practical application and hands-on practice by exploring trending Jupyter Notebook repositories on GitHub for learning and experimentation.']}, {'end': 2590.595, 'start': 1884.192, 'title': 'File pointers and variable assignments', 'summary': 'Delves into the advantages of file pointers, variable assignments, and naming rules in python, concluding with a comprehensive overview of arithmetic operations for both integers and floating-point numbers.', 'duration': 706.403, 'highlights': ["Python file pointers provide advantages by allowing operations on files without specifying the entire path every time, demonstrated by assigning a file to a variable 'x' and checking its type as '_io.TextIOWrapper'. variable 'x' assigned as a file pointer, type '_io.TextIOWrapper'", "Multiple variable assignment can be efficiently achieved by using a single line to assign values to 'x', 'y', and 'z', eliminating the need for individual statements. efficient multiple variable assignment demonstrated", 'Naming rules for variables in Python are clearly outlined, including the requirement for the variable name to begin with an alphabet or underscore, case sensitivity, and the prohibition of using reserved words as variable names. comprehensive explanation of naming rules for variables', 'Arithmetic operations for both integers and floating-point numbers are demonstrated, including addition, subtraction, multiplication, division, integer division, and modulus operations. comprehensive overview of arithmetic operations']}, {'end': 2805.093, 'start': 2591.076, 'title': 'String operations overview', 'summary': 'Covers string operations including extracting single and multiple characters, with examples and explanations, demonstrating how to access and manipulate strings in python.', 'duration': 214.017, 'highlights': ['Explaining how to extract a single character from a string by using its index, demonstrating the process with examples. The speaker explains the process of extracting a single character from a string using its index, demonstrating the method by extracting the first and fifth characters, with clear explanations and examples.', 'Demonstrating the extraction of multiple characters from a string using index slicing, providing examples and explanations. The speaker demonstrates the process of extracting multiple characters from a string using index slicing, providing examples and explaining the concept of specifying the range to extract multiple characters from a string.', 'Showing how to extract characters from a specific index to the end of a string, with an explanation and demonstration. The speaker demonstrates how to extract characters from a specific index to the end of a string, explaining the syntax and showcasing the process through examples.']}, {'end': 3134.141, 'start': 2805.574, 'title': 'Python numbers and arithmetic operations', 'summary': 'Covers the types of numbers supported in python, including integers, floating point numbers, and complex numbers. it also explains arithmetic operations like addition, subtraction, multiplication, division, integer division, exponentiation, and modulus operation.', 'duration': 328.567, 'highlights': ['Python supports different types of numbers including integers, floating point numbers, and complex numbers. Python supports different types of numbers including integers, floating point numbers, and complex numbers, providing flexibility in data representation.', "Integers in Python can be of any length and are limited only by the system's memory. Integers in Python can be of any length, limited only by the system's memory, offering scalability in handling large integer values.", "Python provides support for complex numbers with real and imaginary parts, represented using 'j' or 'i'. Python provides support for complex numbers with real and imaginary parts, allowing representation and manipulation of complex data in calculations.", 'Arithmetic operations like addition, subtraction, multiplication, and division can be performed on numbers in Python. Arithmetic operations like addition, subtraction, multiplication, and division can be performed on numbers in Python, providing basic mathematical capabilities.', "Python supports integer division using '//' and exponentiation using '**'. Python supports integer division using '//' and exponentiation using '**', offering precise control over the output format of mathematical operations."]}, {'end': 3455.725, 'start': 3134.141, 'title': 'Python number operations and conversions', 'summary': 'Covers number operations, conversions, and inbuilt functions in python. it explains the modulus operator, type conversions, and usage of inbuilt functions such as absolute, exponent, and square root.', 'duration': 321.584, 'highlights': ['The chapter covers number operations, conversions, and inbuilt functions in Python. It explains the modulus operator, type conversions, and usage of inbuilt functions such as absolute, exponent, and square root.', 'The absolute function returns the absolute value of a number, always positive. Demonstrates the absolute function returning a positive value for a negative input, e.g., abs(-7.5) returns 7.5.', 'Exponent function takes a parameter and returns e raised to the power of the parameter. Explains the exponent function, e.g., math.exp(10) returns the value of e raised to the power of 10.', "Python has constants like 'e' and 'pi' accessible through the math library. Mentions the availability of constants like 'e' and 'pi' in Python; math.e returns the value of e and math.pi returns the value of pi.", 'The square root function returns the square root of a given value. Explains the square root function, e.g., math.sqrt(9) returns 3.0, and even for non-square numbers, it returns a fairly accurate value.']}], 'duration': 2553.883, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s901842.jpg', 'highlights': ['Jupyter Notebook allows running cells top to bottom, enhancing code execution control.', 'Converting cell types to Markdown in Jupyter Notebook streamlines project presentation.', 'Interrupting the kernel in Jupyter Notebook enables effective code management.', 'Python file pointers allow operations without specifying the entire path every time.', 'Comprehensive explanation of naming rules for variables in Python.', 'Demonstration of extracting single and multiple characters from a string using index.', 'Python supports different types of numbers including integers, floating point numbers, and complex numbers.', 'Python provides support for complex numbers with real and imaginary parts.', "Python supports integer division using '//' and exponentiation using '**'.", 'The chapter covers number operations, conversions, and inbuilt functions in Python.']}, {'end': 4616.214, 'segs': [{'end': 3743.652, 'src': 'embed', 'start': 3680.01, 'weight': 0, 'content': [{'end': 3684.574, 'text': "I'll name my list mix because it's going to be a mix of numbers, strings.", 'start': 3680.01, 'duration': 4.564}, {'end': 3708.156, 'text': "two numbers and then I'll follow this up with a few strings and let's run it so that works perfectly fine Now lists have another format.", 'start': 3686.803, 'duration': 21.353}, {'end': 3714.079, 'text': 'If you have worked with any other programming language previously, you would have come across the term matrix.', 'start': 3708.896, 'duration': 5.183}, {'end': 3719.282, 'text': 'So usually in other programming languages, matrix are associated with arrays.', 'start': 3714.659, 'duration': 4.623}, {'end': 3721.023, 'text': 'So they are basically 2D arrays.', 'start': 3719.442, 'duration': 1.581}, {'end': 3724.584, 'text': "In case of Python's, matrix can also be of lists.", 'start': 3721.323, 'duration': 3.261}, {'end': 3727.686, 'text': 'So you can have a list containing two or more lists.', 'start': 3725.065, 'duration': 2.621}, {'end': 3729.307, 'text': "So let's do that.", 'start': 3728.406, 'duration': 0.901}, {'end': 3734.97, 'text': "I'll name my list mat as in short for matrix.", 'start': 3731.128, 'duration': 3.842}, {'end': 3743.652, 'text': 'open square braces and since the elements of this list are also lists, put these two in square braces.', 'start': 3736.508, 'duration': 7.144}], 'summary': 'Creating a mix list with numbers and strings, and understanding matrix as 2d arrays in python.', 'duration': 63.642, 'max_score': 3680.01, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s3680010.jpg'}, {'end': 3956.424, 'src': 'embed', 'start': 3929.599, 'weight': 3, 'content': [{'end': 3936.505, 'text': 'So ideally there would be a number on either side of the colon but in this case we are taking from the beginning of the list.', 'start': 3929.599, 'duration': 6.906}, {'end': 3944.313, 'text': "So if the digit before the colon is supposed to be zero you can just leave it blank and automatically it's interpreted as zero.", 'start': 3937.186, 'duration': 7.127}, {'end': 3949.137, 'text': 'Also we know that our third element would be at the index position two.', 'start': 3944.633, 'duration': 4.504}, {'end': 3952.3, 'text': 'But here we have written index position three.', 'start': 3949.498, 'duration': 2.802}, {'end': 3956.424, 'text': 'This is because our last index positions always excluded.', 'start': 3952.481, 'duration': 3.943}], 'summary': 'Explaining list indexing and exclusion, with 0-based counting.', 'duration': 26.825, 'max_score': 3929.599, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s3929599.jpg'}, {'end': 4045.174, 'src': 'embed', 'start': 4008.531, 'weight': 4, 'content': [{'end': 4012.275, 'text': 'But now we want to extract all elements till the end of the list.', 'start': 4008.531, 'duration': 3.744}, {'end': 4015.518, 'text': 'So you can just leave the last position blank.', 'start': 4012.895, 'duration': 2.623}, {'end': 4022.584, 'text': "When you do this, it's automatically interpreted that you're taking all the elements up till the end of the list.", 'start': 4015.978, 'duration': 6.606}, {'end': 4026.408, 'text': "Let's run this and we received get and certified.", 'start': 4023.005, 'duration': 3.403}, {'end': 4033.623, 'text': 'Now I want to extract the words simply learn and get from our list mix.', 'start': 4027.188, 'duration': 6.435}, {'end': 4045.174, 'text': 'In this case what would be the parameters within our square braces? So simply learn is at the index location 2 and get is at the index location 3.', 'start': 4034.344, 'duration': 10.83}], 'summary': "Extract elements from a list using index positions, resulting in 'simply learn' and 'get'.", 'duration': 36.643, 'max_score': 4008.531, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s4008531.jpg'}, {'end': 4121.55, 'src': 'embed', 'start': 4087.929, 'weight': 2, 'content': [{'end': 4092.793, 'text': 'and then we have simply learned again the word get is skipped and we have certified.', 'start': 4087.929, 'duration': 4.864}, {'end': 4096.537, 'text': "Now there's one more thing you can do with list indices.", 'start': 4093.754, 'duration': 2.783}, {'end': 4099.538, 'text': 'You can print them in the reverse order.', 'start': 4097.216, 'duration': 2.322}, {'end': 4107.417, 'text': 'So to do that just two colons and minus 1.', 'start': 4100.64, 'duration': 6.777}, {'end': 4113.064, 'text': "Let's print that and as you can see your list mix is printed in the reverse order.", 'start': 4107.417, 'duration': 5.647}, {'end': 4121.55, 'text': 'So now if we go back to line 16, These two double colons are basically positions for your indices.', 'start': 4114.265, 'duration': 7.285}], 'summary': 'List indices can be printed in reverse order using two colons and -1.', 'duration': 33.621, 'max_score': 4087.929, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s4087929.jpg'}], 'start': 3456.045, 'title': 'Python lists basics, indexing, slicing, operations, and methods', 'summary': 'Covers python list basics, indexing, slicing, operations, and methods. it includes creating, accessing elements, handling different data types, and accessing elements using positive and negative indices. it explains accessing single elements, ranges of elements, and reverse order printing, along with various list operations and methods such as concatenation, unpacking, and manipulation.', 'chapters': [{'end': 3906.874, 'start': 3456.045, 'title': 'Python lists basics', 'summary': 'Covers the basics of python lists, including creating, accessing elements, and handling different data types, and also demonstrates accessing elements using positive and negative indices.', 'duration': 450.829, 'highlights': ['Creating a list in Python The chapter demonstrates creating lists of integers, single characters, strings, and a mix of different data types, as well as creating a list containing lists.', 'Accessing elements in a list using indices The chapter explains accessing individual elements in a list using positive and negative indices, demonstrating how to access elements by position from the front and back of the list.']}, {'end': 4143.13, 'start': 3906.874, 'title': 'List indexing and slicing', 'summary': 'Explains how to access single elements, ranges of elements, and perform reverse order printing in a list using python, including examples and indexing rules.', 'duration': 236.256, 'highlights': ['The chapter explains how to access a range of elements in a list using Python, and provides examples like extracting the first three elements and all elements from a certain position. Explanation of accessing a range of elements in a list; Extracting the first three elements and all elements from a certain position', 'The explanation includes details about the indexing rules in Python, such as the exclusion of the last index position when using slicing. Details about indexing rules in Python; Exclusion of the last index position when using slicing', 'The chapter demonstrates how to extract specific elements from a list, including examples like extracting specific words from the list using their index locations. Demonstration of extracting specific elements from a list; Example of extracting specific words using their index locations', 'The chapter also covers extracting every second element from a list and printing the list in reverse order using Python. Explanation of extracting every second element from a list; Printing the list in reverse order']}, {'end': 4616.214, 'start': 4143.491, 'title': 'List operations and methods', 'summary': 'Covers various operations and methods on lists, including creating a list of a hundred zeros, concatenating lists, unpacking a string into a list, manipulating lists using methods like append, extend, insert, and remove.', 'duration': 472.723, 'highlights': ['The chapter covers various operations and methods on lists, including creating a list of a hundred zeros, concatenating lists, unpacking a string into a list, manipulating lists using methods like append, extend, insert, and remove.', 'The append method adds a single element to the end of the list, demonstrated by adding 6 to the end of the list num.', 'The extend method adds an entire list to the end of the original list, shown by adding the list stg to the end of the list num.', "The insert method inserts a new element at a specified position in the list, as demonstrated by inserting the string 'simply learn' at the fifth position in the list num.", "The remove method removes the first occurrence of a specified element from the list, illustrated by removing the element 'simply learn' from the list num."]}], 'duration': 1160.169, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s3456045.jpg', 'highlights': ['Covers various list operations and methods like append, extend, insert, and remove.', 'Demonstrates creating lists of integers, single characters, strings, and a mix of different data types.', 'Explains accessing individual elements in a list using positive and negative indices.', 'Demonstrates how to access a range of elements in a list using Python.', 'Includes details about the indexing rules in Python, such as the exclusion of the last index position when using slicing.']}, {'end': 5975.026, 'segs': [{'end': 4760.929, 'src': 'embed', 'start': 4732.046, 'weight': 2, 'content': [{'end': 4738.912, 'text': 'So sum of x by len of x would give you the average of x.', 'start': 4732.046, 'duration': 6.866}, {'end': 4743.396, 'text': 'So with that we covered the basic built-in functions for Python lists.', 'start': 4738.912, 'duration': 4.484}, {'end': 4747.52, 'text': 'We also covered the methods in list, a few operations in list.', 'start': 4743.836, 'duration': 3.684}, {'end': 4751.143, 'text': 'We saw how we can access the various elements in list.', 'start': 4747.86, 'duration': 3.283}, {'end': 4754.205, 'text': 'Today we look into what tuples in Python are.', 'start': 4751.383, 'duration': 2.822}, {'end': 4755.165, 'text': "So let's begin.", 'start': 4754.465, 'duration': 0.7}, {'end': 4760.929, 'text': 'What are tuples? A tuple is a collection of immutable heterogeneous Python objects.', 'start': 4755.446, 'duration': 5.483}], 'summary': 'Python lists covered built-in functions, methods, operations, and accessing elements. introduction to tuples as immutable collections.', 'duration': 28.883, 'max_score': 4732.046, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s4732046.jpg'}, {'end': 4979.814, 'src': 'embed', 'start': 4954.292, 'weight': 5, 'content': [{'end': 4962.539, 'text': "Now in the most standard way of creating tuples, you'll say city and within brackets, you'll pass your element, also print out city after that.", 'start': 4954.292, 'duration': 8.247}, {'end': 4970.946, 'text': "And this same syntax can be used, and then you can also combine these both, although that's completely unnecessary effort, but it's possible.", 'start': 4962.839, 'duration': 8.107}, {'end': 4972.347, 'text': 'it does not result in an error.', 'start': 4970.946, 'duration': 1.401}, {'end': 4975.09, 'text': 'So you have your brackets and the comma, works just fine.', 'start': 4972.568, 'duration': 2.522}, {'end': 4979.814, 'text': 'Now I want to add more elements to city because clearly Pune is not the only city we know.', 'start': 4975.33, 'duration': 4.484}], 'summary': 'Demonstrates creating tuples in python with examples and mention of adding more elements.', 'duration': 25.522, 'max_score': 4954.292, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s4954292.jpg'}, {'end': 5036.017, 'src': 'embed', 'start': 5010.802, 'weight': 16, 'content': [{'end': 5018.048, 'text': 'Usually you use this method to create a tuple with n number of elements, and when it comes to one element, you usually go for this.', 'start': 5010.802, 'duration': 7.246}, {'end': 5020.17, 'text': 'just put one element within the brackets.', 'start': 5018.048, 'duration': 2.122}, {'end': 5022.092, 'text': 'This is also used sometimes.', 'start': 5020.51, 'duration': 1.582}, {'end': 5029.014, 'text': 'Now another thing we saw while learning what a tuple is or looking at the definition of a tuple is the word immutable.', 'start': 5022.392, 'duration': 6.622}, {'end': 5036.017, 'text': 'So we said lists are mutable which means that they can be changed and tuples are immutable as in they cannot be changed.', 'start': 5029.155, 'duration': 6.862}], 'summary': 'Tuples can be created with n elements, and are immutable unlike lists.', 'duration': 25.215, 'max_score': 5010.802, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s5010802.jpg'}, {'end': 5176.834, 'src': 'embed', 'start': 5145.222, 'weight': 3, 'content': [{'end': 5149.883, 'text': 'Now if you want to access some particular element of the tuple, say I want to take out Bangalore.', 'start': 5145.222, 'duration': 4.661}, {'end': 5152.964, 'text': 'So in that case we use the indices as we saw earlier.', 'start': 5150.104, 'duration': 2.86}, {'end': 5157.126, 'text': 'Indices start from 0 and Bangalore is therefore at the first position.', 'start': 5153.184, 'duration': 3.942}, {'end': 5161.487, 'text': 'So I have to just say city and within square brackets 1.', 'start': 5157.386, 'duration': 4.101}, {'end': 5167.649, 'text': 'So this particular line or this syntax is exactly the same as you would use for a list or string.', 'start': 5161.487, 'duration': 6.162}, {'end': 5169.37, 'text': 'Just run that and here we go.', 'start': 5167.889, 'duration': 1.481}, {'end': 5170.33, 'text': 'We have Bangalore.', 'start': 5169.55, 'duration': 0.78}, {'end': 5176.834, 'text': 'we can also extract elements from the end of the string just like we did in case of list.', 'start': 5171.05, 'duration': 5.784}], 'summary': "Accessing elements from tuple using indices, like extracting 'bangalore' at position 1.", 'duration': 31.612, 'max_score': 5145.222, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s5145222.jpg'}, {'end': 5693.626, 'src': 'embed', 'start': 5663.61, 'weight': 6, 'content': [{'end': 5667.212, 'text': 'dot count of and the element whose count you wanna know.', 'start': 5663.61, 'duration': 3.602}, {'end': 5670.754, 'text': 'So I want to know the number of twos in my tuple num1.', 'start': 5667.392, 'duration': 3.362}, {'end': 5673.175, 'text': 'Run that and as you see there are four twos.', 'start': 5671.034, 'duration': 2.141}, {'end': 5677.678, 'text': 'Now you can also find the sum of all the elements within your tuple.', 'start': 5673.476, 'duration': 4.202}, {'end': 5679.759, 'text': 'So that is sum of num1.', 'start': 5677.898, 'duration': 1.861}, {'end': 5682.661, 'text': 'You just have your function sum, pass num1 to it.', 'start': 5679.959, 'duration': 2.702}, {'end': 5686.543, 'text': 'Now this sum function works for tuples, lists, everything.', 'start': 5682.781, 'duration': 3.762}, {'end': 5689.845, 'text': "It's not a function particularly for tuples as such.", 'start': 5686.863, 'duration': 2.982}, {'end': 5693.626, 'text': 'So the sum of all the elements within our tuple is 35.', 'start': 5690.285, 'duration': 3.341}], 'summary': 'Count 4 twos in tuple num1 and find sum of all elements, which is 35.', 'duration': 30.016, 'max_score': 5663.61, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s5663610.jpg'}, {'end': 5774.676, 'src': 'embed', 'start': 5710.152, 'weight': 0, 'content': [{'end': 5714.394, 'text': 'Now we have the max function for finding out the maximum number in your tuple.', 'start': 5710.152, 'duration': 4.242}, {'end': 5725.363, 'text': 'So say max of num1 which is 8 and we also have a function for checking the minimum of the numbers within a tuple which is 2 in this particular case.', 'start': 5714.834, 'duration': 10.529}, {'end': 5729.667, 'text': 'So now list and tuple are very similar in the sense of what they hold.', 'start': 5725.784, 'duration': 3.883}, {'end': 5737.374, 'text': 'So what if I have a list say lst which holds the elements 1, 2, 3, 4 and I want to convert this list to a tuple.', 'start': 5729.967, 'duration': 7.407}, {'end': 5739.035, 'text': "So we'll see how that is done.", 'start': 5737.594, 'duration': 1.441}, {'end': 5741.837, 'text': 'First I stored my list 1, 2, 3, 4.', 'start': 5739.455, 'duration': 2.382}, {'end': 5747.842, 'text': "So I'll just check the type of the variable lst, ensure that it's a list, which it is.", 'start': 5741.837, 'duration': 6.005}, {'end': 5749.943, 'text': 'Now we can convert this to a tuple.', 'start': 5748.222, 'duration': 1.721}, {'end': 5758.108, 'text': 'So to convert this to a tuple, enter your variable name and then pass your list name within these braces for the method tuple.', 'start': 5750.183, 'duration': 7.925}, {'end': 5765.752, 'text': "Run this code and now let's print out tpl and as you see our list lst has been converted to a tuple.", 'start': 5758.429, 'duration': 7.323}, {'end': 5767.313, 'text': 'We can also check its type.', 'start': 5765.992, 'duration': 1.321}, {'end': 5769.614, 'text': 'So yeah our conversion has worked out fine.', 'start': 5767.733, 'duration': 1.881}, {'end': 5774.676, 'text': 'Now this kind of a situation often arises when you put certain elements into a list.', 'start': 5769.774, 'duration': 4.902}], 'summary': 'The transcript explains using max and min functions for tuples, converting a list to a tuple, and checking type conversions.', 'duration': 64.524, 'max_score': 5710.152, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s5710152.jpg'}, {'end': 5880.216, 'src': 'embed', 'start': 5851.232, 'weight': 11, 'content': [{'end': 5858.199, 'text': "So lst.remove and within this I'll pass the list that I want removed, which is my first list in this case.", 'start': 5851.232, 'duration': 6.967}, {'end': 5859.641, 'text': 'So run that code.', 'start': 5858.5, 'duration': 1.141}, {'end': 5863.624, 'text': "and print out the value of lst to check what's in it right now.", 'start': 5860.081, 'duration': 3.543}, {'end': 5865.525, 'text': 'So our first list has been removed.', 'start': 5863.924, 'duration': 1.601}, {'end': 5868.808, 'text': 'Now we just saw how you can nest tuples within lists.', 'start': 5865.885, 'duration': 2.923}, {'end': 5872.49, 'text': "Now we'll check out how we can nest lists within tuples.", 'start': 5869.128, 'duration': 3.362}, {'end': 5880.216, 'text': "So I'll create a tuple tpl and within this tuple I'll have two elements, each of the elements being a list.", 'start': 5873.591, 'duration': 6.625}], 'summary': 'Demonstrated removing a list from a list and nesting tuples within lists.', 'duration': 28.984, 'max_score': 5851.232, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s5851232.jpg'}], 'start': 4622.421, 'title': 'Working with tuples and lists', 'summary': 'Covers basic built-in functions for python lists, the concept of tuples, their immutability, slicing, unpacking, and conversion between lists and tuples, with examples and quantifiable data.', 'chapters': [{'end': 5100.819, 'start': 4622.421, 'title': 'Sorting and basic built-in functions in python lists', 'summary': 'Covers the basic built-in functions for python lists, including len, min, max, and sum, as well as the concept of tuples in python, including creation methods, immutable nature, and differences from lists.', 'duration': 478.398, 'highlights': ['The chapter covers the basic built-in functions for Python lists, including len, min, max, and sum, as well as the concept of tuples in Python, including creation methods, immutable nature, and differences from lists. The chapter discusses the basic built-in functions for Python lists, such as len, min, max, and sum, as well as the concept of tuples in Python, covering creation methods, the immutable nature of tuples, and differences from lists.', 'The length of the list x is 6, and the minimum element in the list is 4, while the maximum is 90. The length of the list x is 6, with the minimum element being 4 and the maximum being 90.', 'The sum of all the elements in the list x is 189. The sum of all the elements in the list x is 189.', 'The average of x is calculated by dividing the sum of x by the length of x. The average of x is calculated by dividing the sum of x by the length of x.', 'A tuple is a collection of immutable heterogeneous Python objects, and it can store various data elements such as integers, floats, and strings. A tuple is a collection of immutable heterogeneous Python objects, capable of storing various data elements such as integers, floats, and strings.', 'The index for tuples, lists, and strings in Python starts with 0, and the last index of a tuple with 6 elements is 5. The index for tuples, lists, and strings in Python starts with 0, and the last index of a tuple with 6 elements is 5.', 'Creating tuples with empty brackets or a single element followed by a comma is demonstrated, and the immutability of tuples is illustrated through an example contrasting the append function in lists and tuples. The chapter demonstrates creating tuples with empty brackets or a single element followed by a comma, and illustrates the immutability of tuples through an example contrasting the append function in lists and tuples.']}, {'end': 5433.299, 'start': 5101.239, 'title': 'Tuples in python: immutable data structures', 'summary': 'Explains the main difference between lists and tuples, the syntax, accessing elements, concatenation, nesting, repetition, and slicing in tuples, emphasizing their immutability and various operations that can still be performed on them.', 'duration': 332.06, 'highlights': ['Tuples are immutable data structures, unlike lists. Lists are mutable whereas tuple is immutable. The chapter highlights the main difference between lists and tuples, emphasizing that lists are mutable while tuples are immutable.', 'Accessing elements in a tuple is achieved using indices, similar to lists and strings. Elements can be accessed by their position in the tuple, and the last element can be accessed using a negative index. The chapter explains how to access elements in a tuple using indices, including accessing specific elements and accessing the last element using a negative index.', 'Tuples can be concatenated using the plus sign, allowing the creation of a new tuple containing the elements of both original tuples. The chapter demonstrates the concatenation of tuples using the plus sign, resulting in a new tuple containing the elements of both original tuples.', 'Tuples can be nested, allowing the creation of a tuple within another tuple. The chapter illustrates how to nest tuples, creating a new tuple that contains other tuples, exemplifying the nesting concept in tuples.', 'Elements in a tuple can be repeated using the multiplication operator, allowing for the creation of tuples with repeated elements. The chapter showcases how to repeat elements in a tuple using the multiplication operator, demonstrating the creation of tuples with repeated elements.', 'Slicing in tuples is similar to lists, allowing the extraction of specific elements or sub-tuples from the original tuple. The chapter discusses slicing in tuples, explaining how specific elements or sub-tuples can be extracted from the original tuple using slicing.']}, {'end': 5617.398, 'start': 5433.479, 'title': 'Working with tuples in python', 'summary': 'Explains the concept of slicing in python lists, unpacking tuples to assign elements to variables, and using the del keyword to delete tuples, with examples and explanations.', 'duration': 183.919, 'highlights': ['The chapter explains the concept of slicing in Python lists The transcript discusses slicing in Python lists and refers to a video for a detailed description.', 'Unpacking tuples to assign elements to variables is demonstrated The process of unpacking tuples to assign elements to variables is demonstrated with examples, including cases where the number of elements is known and unknown.', 'Using the del keyword to delete tuples is explained with an example The use of the del keyword to delete tuples is explained with an example, demonstrating the deletion of a tuple and the resulting error when attempting to access it.']}, {'end': 5975.026, 'start': 5617.398, 'title': 'Working with tuples and lists', 'summary': 'Explores built-in functions for tuples, including count, sum, len, max, and conversion between lists and tuples, with examples and quantifiable data, such as counting the number of occurrences of an element and the sum of all elements within a tuple.', 'duration': 357.628, 'highlights': ['The sum of all the elements within our tuple is 35, and the number of elements within num1 is 9.', 'The count function returns the number of occurrences of a particular element, with four twos in num1.', 'The max function finds the maximum number in the tuple, which is 8, and the minimum is 2 in this particular case.', 'Conversion from a list to a tuple is demonstrated, and the type of the variable is checked to ensure the successful conversion.', 'Nested tuples within lists are explored, and modifications to the list, such as adding and removing tuples, are demonstrated.']}], 'duration': 1352.605, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s4622421.jpg', 'highlights': ['The chapter covers the basic built-in functions for Python lists, including len, min, max, and sum, as well as the concept of tuples in Python, including creation methods, immutable nature, and differences from lists.', 'The length of the list x is 6, with the minimum element being 4 and the maximum being 90.', 'The sum of all the elements in the list x is 189.', 'A tuple is a collection of immutable heterogeneous Python objects, capable of storing various data elements such as integers, floats, and strings.', 'The index for tuples, lists, and strings in Python starts with 0, and the last index of a tuple with 6 elements is 5.', 'Tuples are immutable data structures, unlike lists. Lists are mutable whereas tuple is immutable.', 'Accessing elements in a tuple is achieved using indices, similar to lists and strings.', 'Tuples can be concatenated using the plus sign, allowing the creation of a new tuple containing the elements of both original tuples.', 'Tuples can be nested, allowing the creation of a tuple within another tuple.', 'Elements in a tuple can be repeated using the multiplication operator, allowing for the creation of tuples with repeated elements.', 'Slicing in tuples is similar to lists, allowing the extraction of specific elements or sub-tuples from the original tuple.', 'Unpacking tuples to assign elements to variables is demonstrated.', 'Using the del keyword to delete tuples is explained with an example.', 'The sum of all the elements within our tuple is 35, and the number of elements within num1 is 9.', 'The count function returns the number of occurrences of a particular element, with four twos in num1.', 'The max function finds the maximum number in the tuple, which is 8, and the minimum is 2 in this particular case.', 'Conversion from a list to a tuple is demonstrated, and the type of the variable is checked to ensure the successful conversion.', 'Nested tuples within lists are explored, and modifications to the list, such as adding and removing tuples, are demonstrated.']}, {'end': 7307.981, 'segs': [{'end': 6283.789, 'src': 'embed', 'start': 6255.812, 'weight': 7, 'content': [{'end': 6260.515, 'text': 'Still our second line of the string is not considered a part of the entire string.', 'start': 6255.812, 'duration': 4.703}, {'end': 6265.978, 'text': 'So here what you do is you start and you begin your string with three quotes.', 'start': 6260.995, 'duration': 4.983}, {'end': 6270.16, 'text': 'Now these three quotes can be either three single or three double quotes.', 'start': 6266.118, 'duration': 4.042}, {'end': 6280.347, 'text': "So if I'm going with single quotes, I'll have three single quotes here and three single quotes at the end.", 'start': 6272.582, 'duration': 7.765}, {'end': 6283.789, 'text': 'So in this manner you can have a string with multiple lines.', 'start': 6280.847, 'duration': 2.942}], 'summary': 'Using three quotes, either single or double, allows for multi-line strings.', 'duration': 27.977, 'max_score': 6255.812, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s6255812.jpg'}, {'end': 6753.577, 'src': 'embed', 'start': 6725.574, 'weight': 1, 'content': [{'end': 6732.661, 'text': 'Now what if you want to find out the index of a particular character? In that case, we have a method called find.', 'start': 6725.574, 'duration': 7.087}, {'end': 6737.186, 'text': 'Find returns the index of the first occurrence of the character.', 'start': 6733.062, 'duration': 4.124}, {'end': 6741.907, 'text': 'So the syntax is very similar.', 'start': 6740.265, 'duration': 1.642}, {'end': 6744.809, 'text': 'Your variable name dot find.', 'start': 6741.927, 'duration': 2.882}, {'end': 6753.577, 'text': 'Now for this method you need a parameter passed and the parameter of course is the character whose index we want to find out.', 'start': 6745.71, 'duration': 7.867}], 'summary': 'The find method returns the index of the first occurrence of a character.', 'duration': 28.003, 'max_score': 6725.574, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s6725574.jpg'}, {'end': 6917.935, 'src': 'embed', 'start': 6890.732, 'weight': 3, 'content': [{'end': 6895.493, 'text': 'So what you do is you store the return value of this method in a variable.', 'start': 6890.732, 'duration': 4.761}, {'end': 6907.297, 'text': 'Say x equal to stg.splitof and then you can utilize this list in doing multiple functions.', 'start': 6898.554, 'duration': 8.743}, {'end': 6912.291, 'text': "In this case, I have nothing to do with x, so I'm just printing it.", 'start': 6909.249, 'duration': 3.042}, {'end': 6917.935, 'text': "But when you start coding, you'll find that the split function comes very handy.", 'start': 6913.812, 'duration': 4.123}], 'summary': 'Store the return value of the split method in a variable to utilize the list for multiple functions.', 'duration': 27.203, 'max_score': 6890.732, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s6890732.jpg'}, {'end': 6997.987, 'src': 'embed', 'start': 6945.148, 'weight': 2, 'content': [{'end': 6950.111, 'text': 'And my second parameter is what I want to replace this particular part of the string by.', 'start': 6945.148, 'duration': 4.963}, {'end': 6955.675, 'text': 'So I want my string to say welcome to Python tutorial instead of welcome to simply learn.', 'start': 6950.531, 'duration': 5.144}, {'end': 6960.078, 'text': "So I'll replace simply learn with Python tutorial.", 'start': 6955.995, 'duration': 4.083}, {'end': 6965.261, 'text': 'Let me print that out.', 'start': 6964.24, 'duration': 1.021}, {'end': 6970.537, 'text': 'So this method too will return a string.', 'start': 6968.174, 'duration': 2.363}, {'end': 6973.301, 'text': 'It will not change our original string.', 'start': 6970.958, 'duration': 2.343}, {'end': 6975.064, 'text': 'None of these methods do that.', 'start': 6973.642, 'duration': 1.422}, {'end': 6981.072, 'text': "Yeah, so as you can see here, it's returned welcome to Python tutorial instead of welcome to simply learn.", 'start': 6975.885, 'duration': 5.187}, {'end': 6984.385, 'text': 'Now Python has another data type called tuple.', 'start': 6981.624, 'duration': 2.761}, {'end': 6990.106, 'text': 'If you would have gone through our previous video on variables, we introduced tuples there.', 'start': 6984.705, 'duration': 5.401}, {'end': 6993.946, 'text': 'So tuples are a lot like lists except they are immutable.', 'start': 6990.586, 'duration': 3.36}, {'end': 6997.987, 'text': 'Now our next method is the our partition method.', 'start': 6994.506, 'duration': 3.481}], 'summary': 'Demonstration of string manipulation and introduction to tuples in python.', 'duration': 52.839, 'max_score': 6945.148, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s6945148.jpg'}, {'end': 7049.441, 'src': 'embed', 'start': 7024.221, 'weight': 10, 'content': [{'end': 7033.088, 'text': 'Now if I pass within my brackets the string space to space, what this will do is my tuple always has to have three elements.', 'start': 7024.221, 'duration': 8.867}, {'end': 7041.014, 'text': 'So, if you look at the original string, this part here, that is the space to space, forms the middle element of my tuple.', 'start': 7033.488, 'duration': 7.526}, {'end': 7042.836, 'text': 'that is the second element of my tuple.', 'start': 7041.014, 'duration': 1.822}, {'end': 7049.441, 'text': 'Everything before this part that is the entire welcome word will become the first element of my tuple.', 'start': 7043.316, 'duration': 6.125}], 'summary': "Using the string 'space to space' as a delimiter, the tuple is formed with three elements.", 'duration': 25.22, 'max_score': 7024.221, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s7024221.jpg'}, {'end': 7112.301, 'src': 'embed', 'start': 7080.134, 'weight': 0, 'content': [{'end': 7084.977, 'text': 'So these are some of the basic and commonly used inbuilt methods with strings in Python.', 'start': 7080.134, 'duration': 4.843}, {'end': 7088.079, 'text': "Now let's move on to concatenating strings.", 'start': 7085.337, 'duration': 2.742}, {'end': 7094.893, 'text': 'So string concatenations are pretty simple with Python.', 'start': 7091.792, 'duration': 3.101}, {'end': 7105.978, 'text': 'Say you have two strings, stg1 which holds good and stg2 which holds morning.', 'start': 7095.434, 'duration': 10.544}, {'end': 7112.301, 'text': 'Now using these two strings you want to create a third string which holds good morning.', 'start': 7108.119, 'duration': 4.182}], 'summary': 'Python has basic string methods and simple concatenation.', 'duration': 32.167, 'max_score': 7080.134, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s7080134.jpg'}, {'end': 7284.08, 'src': 'embed', 'start': 7261.909, 'weight': 9, 'content': [{'end': 7269.991, 'text': 'our second placeholder will be replaced by the value of stg2 and our third placeholder here would be replaced by the value of stg3..', 'start': 7261.909, 'duration': 8.082}, {'end': 7274.433, 'text': 'And everything that is in between is printed exactly the same.', 'start': 7270.392, 'duration': 4.041}, {'end': 7277.254, 'text': 'So here I have inserted a space.', 'start': 7274.953, 'duration': 2.301}, {'end': 7284.08, 'text': 'this space will be printed exactly as it is, in the same location that i have given the comma and the space.', 'start': 7277.654, 'duration': 6.426}], 'summary': 'Replace placeholders with values, maintain original formatting.', 'duration': 22.171, 'max_score': 7261.909, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s7261909.jpg'}], 'start': 5975.386, 'title': 'Working with strings in python', 'summary': 'Covers the basics of working with strings in python, including the length function, accessing characters by index, iterating over characters using a for loop, string slicing, and inbuilt methods for string manipulation. it also explores various string manipulation methods in python, such as printing strings in uppercase and lowercase, finding the index of a character, and using the split function to convert a string to a list based on a delimiter.', 'chapters': [{'end': 6280.347, 'start': 5975.386, 'title': 'String basics and syntax', 'summary': 'Covers the basics of strings, including its definition as a data type, the syntax for storing strings, handling single and double quotes within strings, and the use of triple quotes for multi-line strings.', 'duration': 304.961, 'highlights': ['The chapter covers the basics of strings, including its definition as a data type, the syntax for storing strings, handling single and double quotes within strings, and the use of triple quotes for multi-line strings. This highlight summarizes the main points of the chapter, providing an overview of the concepts discussed related to strings.', 'Strings hold a collection of characters, including letters, numbers, and special characters such as space, period, dollar, adreth symbol, and so on. Provides specific details about the contents of strings, including the types of characters that can be included.', 'Explains the importance of enclosing string values within double or single quotes. Emphasizes the significance of using quotes to enclose string values and highlights the potential errors that can occur if not enclosed properly.', 'Discusses the handling of single and double quotes within strings, including the use of escape characters to include them as part of the string. Provides a solution for including single or double quotes within strings by using escape characters, demonstrating practical examples.', 'Demonstrates the use of triple quotes for multi-line strings. Illustrates the usage of triple quotes as a method for defining multi-line strings, addressing the limitations of single and double quotes for this purpose.']}, {'end': 6639.75, 'start': 6280.847, 'title': 'Working with strings in python', 'summary': 'Covers the basics of working with strings in python, including the length function, accessing characters by index, iterating over characters using a for loop, string slicing, and inbuilt methods for string manipulation.', 'duration': 358.903, 'highlights': ["The length function returns the number of characters in a string, for example, 'simply learn' has a length of 11.", 'Accessing characters in a string is done through indices, starting from 0, and can be extracted individually or iterated over using a for loop.', 'String slicing allows for extracting specific parts of a string by specifying the start and end indices, for example, extracting the first five characters or a range of characters within the string.', 'Python offers inbuilt methods for efficient manipulation of string data, though the transcript does not delve into specific methods.']}, {'end': 6917.935, 'start': 6640.37, 'title': 'String manipulation methods in python', 'summary': 'Explores various string manipulation methods in python, such as printing strings in uppercase and lowercase, finding the index of a character, and using the split function to convert a string to a list based on a delimiter.', 'duration': 277.565, 'highlights': ['The split function converts a string to a list based on a specified delimiter, with each word becoming a separate element of the list. The split function is used to convert a string to a list based on a specified delimiter, such as a space, with each word becoming a separate element of the list. This can be a very useful method in Python programming.', 'The find and index methods return the index of the first occurrence of a specified character in the string. The find and index methods are used to return the index of the first occurrence of a specified character in the string. They both provide the index number of the character, and can be useful for locating specific characters within a string.', 'The upper and lower methods are used to print a string in uppercase and lowercase respectively, without altering the original string. The upper and lower methods are used to print a string in uppercase and lowercase respectively, without altering the original string. These methods return a new string with the modified case.']}, {'end': 7079.554, 'start': 6918.595, 'title': 'String methods and tuples in python', 'summary': 'Discusses the usage of string methods like replace, rpartition, and the concept of tuples in python, with examples and explanations of their functionality.', 'duration': 160.959, 'highlights': ["The replace method is used to replace a certain part of the string with another part, returning a new string without altering the original one. The replace method in Python allows for the replacement of specific parts of a string with another part, generating a new string without modifying the original. For instance, replacing 'simply learn' with 'Python tutorial'.", 'The rpartition method creates a tuple with three elements, dividing the string based on the specified part. The rpartition method in Python forms a tuple with three elements by dividing the string based on the specified part, with the division creating the first and last elements and the specified part becoming the middle element.', 'Introduction to tuples in Python, a data type similar to lists but immutable. An introduction to tuples in Python, a data type comparable to lists but immutable, meaning once created, their contents cannot be altered or modified.']}, {'end': 7307.981, 'start': 7080.134, 'title': 'String concatenation in python', 'summary': 'Explains basic and commonly used inbuilt methods with strings in python, and demonstrates string concatenation using examples with two strings and three strings, as well as the usage of the format inbuilt function for strings.', 'duration': 227.847, 'highlights': ['The chapter explains basic and commonly used inbuilt methods with strings in Python It covers basic and commonly used inbuilt methods with strings in Python.', 'demonstrates string concatenation using examples with two strings and three strings It demonstrates string concatenation using examples with two strings and three strings.', 'the usage of the format inbuilt function for strings It explains the usage of the format inbuilt function for strings, with placeholders and the format function to concatenate strings.']}], 'duration': 1332.595, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s5975386.jpg', 'highlights': ['Covers the basics of strings, including its definition as a data type, syntax for storing strings, and handling single and double quotes.', 'Explains the importance of enclosing string values within double or single quotes.', 'Demonstrates the use of triple quotes for multi-line strings.', "The length function returns the number of characters in a string, for example, 'simply learn' has a length of 11.", 'Accessing characters in a string is done through indices, starting from 0, and can be extracted individually or iterated over using a for loop.', 'String slicing allows for extracting specific parts of a string by specifying the start and end indices.', 'The split function converts a string to a list based on a specified delimiter, with each word becoming a separate element of the list.', 'The find and index methods return the index of the first occurrence of a specified character in the string.', 'The upper and lower methods are used to print a string in uppercase and lowercase respectively, without altering the original string.', 'The replace method is used to replace a certain part of the string with another part, returning a new string without altering the original one.', 'The rpartition method creates a tuple with three elements, dividing the string based on the specified part.', 'Introduction to tuples in Python, a data type similar to lists but immutable.', 'The chapter explains basic and commonly used inbuilt methods with strings in Python.', 'Demonstrates string concatenation using examples with two strings and three strings.', 'Explains the usage of the format inbuilt function for strings.']}, {'end': 8399.812, 'segs': [{'end': 7392.296, 'src': 'embed', 'start': 7353.702, 'weight': 3, 'content': [{'end': 7357.787, 'text': 'But here in dictionaries, keys can be not just integers but also strings.', 'start': 7353.702, 'duration': 4.085}, {'end': 7362.312, 'text': 'So that is the main difference between dictionaries and other sequences such as lists and tuples.', 'start': 7358.007, 'duration': 4.305}, {'end': 7364.814, 'text': "Now let's have a look at exactly how this works.", 'start': 7362.492, 'duration': 2.322}, {'end': 7366.616, 'text': 'But first we look at its syntax.', 'start': 7365.034, 'duration': 1.582}, {'end': 7372.921, 'text': 'So you have your variable name or the dictionary name equal to and within curly braces you have your data stored.', 'start': 7366.756, 'duration': 6.165}, {'end': 7376.505, 'text': 'So each data here is a key value pair as I mentioned earlier.', 'start': 7373.162, 'duration': 3.343}, {'end': 7380.088, 'text': 'So our first data would be key1 and then you have the double colon.', 'start': 7376.745, 'duration': 3.343}, {'end': 7383.411, 'text': 'So the double colon basically separates the key and the value.', 'start': 7380.188, 'duration': 3.223}, {'end': 7387.595, 'text': 'So value1 is assigned to key1, value2 is assigned to key2.', 'start': 7383.591, 'duration': 4.004}, {'end': 7392.296, 'text': 'and so on and every pair of value and key is separated by a comma.', 'start': 7388.115, 'duration': 4.181}], 'summary': 'Dictionaries use key-value pairs, allowing for non-integer keys, distinct from lists and tuples.', 'duration': 38.594, 'max_score': 7353.702, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s7353702.jpg'}, {'end': 7533.952, 'src': 'embed', 'start': 7507.495, 'weight': 7, 'content': [{'end': 7514.52, 'text': 'The next key would be age which is 22 and finally the profession And Sam here is a student.', 'start': 7507.495, 'duration': 7.025}, {'end': 7516.701, 'text': "So that's our dictionary D3.", 'start': 7515.16, 'duration': 1.541}, {'end': 7518.062, 'text': "I'll print this out too.", 'start': 7517.001, 'duration': 1.061}, {'end': 7520.124, 'text': 'So we created an empty dictionary.', 'start': 7518.322, 'duration': 1.802}, {'end': 7523.827, 'text': 'We created a dictionary with its indices as just integers.', 'start': 7520.204, 'duration': 3.623}, {'end': 7528.21, 'text': "Now there's another method of creating dictionaries which is using the dict method.", 'start': 7523.967, 'duration': 4.243}, {'end': 7529.591, 'text': "So let's check this out.", 'start': 7528.47, 'duration': 1.121}, {'end': 7533.952, 'text': "My dictionary name is D4 and I'll be using the dictionary method.", 'start': 7529.931, 'duration': 4.021}], 'summary': 'Created dictionaries with age 22 and profession student.', 'duration': 26.457, 'max_score': 7507.495, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s7507495.jpg'}, {'end': 7821.538, 'src': 'embed', 'start': 7795.721, 'weight': 4, 'content': [{'end': 7801.124, 'text': 'So how do you assign these? Well the same way but now instead of number, put down a string.', 'start': 7795.721, 'duration': 5.403}, {'end': 7806.628, 'text': 'And I say d of name equal to sam, right? And then print out d.', 'start': 7801.304, 'duration': 5.324}, {'end': 7810.17, 'text': 'So our first two elements have the key 0 and 1 integers.', 'start': 7806.628, 'duration': 3.542}, {'end': 7816.695, 'text': 'Our last element is having the key as name which is a string and a value which is again a string.', 'start': 7810.351, 'duration': 6.344}, {'end': 7821.538, 'text': 'Now similarly you can also add dictionary as an element to this already existing dictionary.', 'start': 7816.975, 'duration': 4.563}], 'summary': 'Assign strings as keys in a dictionary, with example of adding a dictionary as an element.', 'duration': 25.817, 'max_score': 7795.721, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s7795721.jpg'}, {'end': 8144.965, 'src': 'embed', 'start': 8095.561, 'weight': 0, 'content': [{'end': 8098.382, 'text': "So first I'll create a sequence for my keys.", 'start': 8095.561, 'duration': 2.821}, {'end': 8108.387, 'text': 'My keys would be ABCD and then I just have one single value here, 1, and I want each of these keys to have the value as 1.', 'start': 8098.703, 'duration': 9.684}, {'end': 8112.428, 'text': 'so this is where the from keys method comes very handy.', 'start': 8108.387, 'duration': 4.041}, {'end': 8119.891, 'text': 'say dict.fromkeys, and then you pass on the sequence of keys and the value.', 'start': 8112.428, 'duration': 7.463}, {'end': 8121.011, 'text': "let's run the command.", 'start': 8119.891, 'duration': 1.12}, {'end': 8126.313, 'text': 'so a dictionary is created here with our keys, ABCD, and, as I mentioned previously,', 'start': 8121.011, 'duration': 5.302}, {'end': 8130.335, 'text': 'you can probably notice here the best that dictionaries are unordered.', 'start': 8126.313, 'duration': 4.022}, {'end': 8139.882, 'text': "So just because I gave the sequence as ABCD does not mean that this sequence or this order will hold in the dictionary that's created.", 'start': 8130.515, 'duration': 9.367}, {'end': 8144.965, 'text': "And now finally, we'll use the clear method to completely remove this dictionary.", 'start': 8140.062, 'duration': 4.903}], 'summary': 'Using dict.fromkeys to create a dictionary with keys abcd and value 1, demonstrating the unordered nature of dictionaries.', 'duration': 49.404, 'max_score': 8095.561, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s8095561.jpg'}, {'end': 8280.259, 'src': 'embed', 'start': 8254.437, 'weight': 1, 'content': [{'end': 8258.841, 'text': 'Now sets need not have just integers or just strings.', 'start': 8254.437, 'duration': 4.404}, {'end': 8260.262, 'text': 'It can be mixed of course.', 'start': 8259.04, 'duration': 1.222}, {'end': 8265.406, 'text': 'And we look at this while also looking at how you can add elements to a set.', 'start': 8260.663, 'duration': 4.743}, {'end': 8268.269, 'text': 'So for adding elements you use the add method.', 'start': 8265.707, 'duration': 2.562}, {'end': 8274.475, 'text': 'So s.addOf and then within the brackets you pass whatever the element is that you want to add.', 'start': 8268.49, 'duration': 5.985}, {'end': 8276.797, 'text': "In this particular case I'm adding a.", 'start': 8274.695, 'duration': 2.102}, {'end': 8277.518, 'text': "So I'll run that.", 'start': 8276.797, 'duration': 0.721}, {'end': 8280.259, 'text': 'and then print out s.', 'start': 8278.157, 'duration': 2.102}], 'summary': 'Sets can contain mixed data types and elements can be added using the add method.', 'duration': 25.822, 'max_score': 8254.437, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s8254437.jpg'}], 'start': 7310.264, 'title': 'Python dictionaries and sets', 'summary': 'Covers python dictionaries, including their syntax, usage, creation, types, nested dictionaries, and operations like adding, updating, accessing, and deleting elements, as well as showcasing inbuilt functions. it also delves into the concept and operations of sets in python, covering creating sets, adding elements, and performing set operations like union and intersection, along with important dictionary functions like values and fromkeys.', 'chapters': [{'end': 7392.296, 'start': 7310.264, 'title': 'Python dictionaries: key-value data storage', 'summary': 'Introduces python dictionaries, an unordered collection of key-value pairs, where keys can be integers or strings, and explains their syntax and usage.', 'duration': 82.032, 'highlights': ['Python dictionaries are an unordered collection of key-value pairs, where the key can be not just integers but also strings, distinguishing them from other sequences such as lists and tuples.', 'The syntax of a dictionary involves defining a variable name or dictionary name equal to the data stored within curly braces, with each data being a key-value pair separated by a double colon and every pair separated by a comma.', 'Dictionaries in Python store data as a pair of key and value, providing a flexible and efficient way to organize and access data in the form of key-value pairs.']}, {'end': 8052.319, 'start': 7392.476, 'title': 'Dictionaries in python', 'summary': 'Provides a comprehensive guide on dictionaries in python, covering creation, types, nested dictionaries, adding/updating elements, accessing elements, and deleting elements using methods like pop and popitem, also showcasing inbuilt functions.', 'duration': 659.843, 'highlights': ['Creation of Dictionaries The chapter covers various methods of creating dictionaries, including creating an empty dictionary, creating a dictionary with elements, using the dict method, and creating nested dictionaries.', 'Adding/Updating Elements It explains how to add elements to a dictionary using key-value pairs, including adding strings and dictionaries as elements, and updating the value of a key.', 'Accessing Elements The chapter demonstrates how to access elements in a dictionary, including retrieving values using keys, accessing values within nested dictionaries, and using the get method for value retrieval.', 'Deleting Elements It provides insights into deleting elements from a dictionary using methods like pop and popitem, showcasing how these methods work and their impact on the dictionary.', 'Inbuilt Functions and Methods It covers the usage of inbuilt functions and methods with dictionaries, highlighting the practical application of these functions in manipulating dictionary elements.']}, {'end': 8399.812, 'start': 8052.319, 'title': 'Python dictionaries and sets', 'summary': 'Covers important functions of dictionaries, including values and fromkeys, and then delves into the concept and operations of sets in python, such as creating sets, adding elements, and performing set operations like union and intersection.', 'duration': 347.493, 'highlights': ["The 'values' function returns all the values of the dictionary, not the keys. The 'values' function of dictionaries returns all the values of the dictionary, providing a way to access only the values without the keys.", "The 'fromkeys' method creates a dictionary using specified keys and values. The 'fromkeys' method allows creating a dictionary by taking two sequences, one for the keys and one for the value, and then it creates a dictionary using these keys and values.", 'Sets in Python are an unordered collection of unique elements, bringing out the mathematical notion of a set, and support operations like union and intersection. Sets in Python are an unordered collection of unique elements, representing the mathematical notion of a set and supporting operations like union and intersection, providing a way to perform common mathematical set operations efficiently.']}], 'duration': 1089.548, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s7310264.jpg', 'highlights': ['Dictionaries in Python store data as a pair of key and value, providing a flexible and efficient way to organize and access data in the form of key-value pairs.', 'The syntax of a dictionary involves defining a variable name or dictionary name equal to the data stored within curly braces, with each data being a key-value pair separated by a double colon and every pair separated by a comma.', 'Python dictionaries are an unordered collection of key-value pairs, where the key can be not just integers but also strings, distinguishing them from other sequences such as lists and tuples.', 'Creation of Dictionaries The chapter covers various methods of creating dictionaries, including creating an empty dictionary, creating a dictionary with elements, using the dict method, and creating nested dictionaries.', 'Sets in Python are an unordered collection of unique elements, representing the mathematical notion of a set and supporting operations like union and intersection, providing a way to perform common mathematical set operations efficiently.', "The 'values' function returns all the values of the dictionary, not the keys. The 'values' function of dictionaries returns all the values of the dictionary, providing a way to access only the values without the keys.", "The 'fromkeys' method creates a dictionary using specified keys and values. The 'fromkeys' method allows creating a dictionary by taking two sequences, one for the keys and one for the value, and then it creates a dictionary using these keys and values.", 'Adding/Updating Elements It explains how to add elements to a dictionary using key-value pairs, including adding strings and dictionaries as elements, and updating the value of a key.', 'Accessing Elements The chapter demonstrates how to access elements in a dictionary, including retrieving values using keys, accessing values within nested dictionaries, and using the get method for value retrieval.', 'Deleting Elements It provides insights into deleting elements from a dictionary using methods like pop and popitem, showcasing how these methods work and their impact on the dictionary.', 'Inbuilt Functions and Methods It covers the usage of inbuilt functions and methods with dictionaries, highlighting the practical application of these functions in manipulating dictionary elements.']}, {'end': 11586.649, 'segs': [{'end': 8949.191, 'src': 'embed', 'start': 8924.959, 'weight': 2, 'content': [{'end': 8933.847, 'text': 'Now so far with if and with if else we had a very binary approach that is if this condition results in true print out the statement A.', 'start': 8924.959, 'duration': 8.888}, {'end': 8936.608, 'text': 'If this results in false print out statement B.', 'start': 8933.847, 'duration': 2.761}, {'end': 8938.929, 'text': 'Now what if we have various other conditions.', 'start': 8936.608, 'duration': 2.321}, {'end': 8944.67, 'text': 'For example we have a number A and we need to check if A is within the range 1 to 10.', 'start': 8939.089, 'duration': 5.581}, {'end': 8949.191, 'text': 'In which case we need to print out that this variable is within the range 1 to 10.', 'start': 8944.67, 'duration': 4.521}], 'summary': 'Introducing multiple conditions with if-else statements and range checking.', 'duration': 24.232, 'max_score': 8924.959, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s8924959.jpg'}, {'end': 8987.559, 'src': 'embed', 'start': 8963.156, 'weight': 4, 'content': [{'end': 8969.643, 'text': 'we need something which has more steps, and that is where, if elif, else ladder comes into picture.', 'start': 8963.156, 'duration': 6.487}, {'end': 8976.351, 'text': 'so here, if you look at the syntax, we have your if condition, first the semicolons, followed by your statements,', 'start': 8969.643, 'duration': 6.708}, {'end': 8981.436, 'text': 'and under this we do not directly have the else statement, but we have another keyword, the elif.', 'start': 8976.351, 'duration': 5.085}, {'end': 8987.559, 'text': 'so the elif statement lets you provide another condition and not just go with the false of if.', 'start': 8981.436, 'duration': 6.123}], 'summary': 'The if-elif-else ladder in programming allows for multi-step conditional statements and provides an alternative condition to the initial if statement.', 'duration': 24.403, 'max_score': 8963.156, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s8963156.jpg'}, {'end': 10039.232, 'src': 'heatmap', 'start': 9314.486, 'weight': 0.737, 'content': [{'end': 9323.795, 'text': 'So if the user enters, say, 14 or 21, you simply print yes, this is a multiple of 7, but on the other hand, if the user enters, say,', 'start': 9314.486, 'duration': 9.309}, {'end': 9329.48, 'text': '10 or 12 or any other number which is not a multiple of 7, you got to take the input again.', 'start': 9323.795, 'duration': 5.685}, {'end': 9330.581, 'text': "So let's begin.", 'start': 9329.841, 'duration': 0.74}, {'end': 9336.967, 'text': "First I'll take an input from the user and I'll store this in my variable val.", 'start': 9331.102, 'duration': 5.865}, {'end': 9346.006, 'text': 'So in Python every input that you take from the user is automatically taken in the string format and you need to convert this into int.', 'start': 9338.317, 'duration': 7.689}, {'end': 9352.795, 'text': 'So that is what this int function is for and within the braces you take the input.', 'start': 9346.627, 'duration': 6.168}, {'end': 9366.087, 'text': "Now we need to make sure that the number entered by the user is a multiple of 7 and if it's not we need to take the input again.", 'start': 9358.137, 'duration': 7.95}, {'end': 9368.31, 'text': "So here's where the while loop comes in.", 'start': 9366.488, 'duration': 1.822}, {'end': 9373.016, 'text': 'We check the modulus of val.', 'start': 9370.973, 'duration': 2.043}, {'end': 9384.678, 'text': 'against 7, and if this is not equal to 0, that means if val divided by 7 does not give a remainder.', 'start': 9374.969, 'duration': 9.709}, {'end': 9386.98, 'text': 'that means val is not a multiple of 7.', 'start': 9384.678, 'duration': 2.302}, {'end': 9391.584, 'text': 'so in this case again we need to take the input from the user.', 'start': 9386.98, 'duration': 4.604}, {'end': 9393.886, 'text': "so we'll repeat our first line once again.", 'start': 9391.584, 'duration': 2.302}, {'end': 9411.726, 'text': "Let's have a look at the syntax for while before we move ahead.", 'start': 9408.564, 'duration': 3.162}, {'end': 9419.351, 'text': 'So we have the first keyword which is while and then val mod 7 is not equal to 0 is a condition.', 'start': 9412.147, 'duration': 7.204}, {'end': 9425.496, 'text': 'Now every time this condition results in true, this statement is executed.', 'start': 9420.132, 'duration': 5.364}, {'end': 9429.063, 'text': 'So this is the only statement within the while loop.', 'start': 9426.621, 'duration': 2.442}, {'end': 9435.749, 'text': 'Now we need to also take care of the condition where the value is a multiple of 7.', 'start': 9429.984, 'duration': 5.765}, {'end': 9437.39, 'text': 'So this will come under else.', 'start': 9435.749, 'duration': 1.641}, {'end': 9445.257, 'text': "Now if you've gone through other programming languages, this might be something new you're coming across because else is always used with if.", 'start': 9437.81, 'duration': 7.447}, {'end': 9449.48, 'text': "You don't use it with while or for or any other loop statement as such.", 'start': 9445.657, 'duration': 3.823}, {'end': 9451.702, 'text': 'But in case of Python, this can be done.', 'start': 9449.881, 'duration': 1.821}, {'end': 9454.585, 'text': 'Else colon and next line.', 'start': 9452.983, 'duration': 1.602}, {'end': 9472.133, 'text': "print, so if the user did finally enter a multiple of 7, we'll just say that this number is a multiple of 7.", 'start': 9455.666, 'duration': 16.467}, {'end': 9477.139, 'text': "So when you're printing the value of a variable within a sentence, this is how you do it.", 'start': 9472.133, 'duration': 5.006}, {'end': 9481.505, 'text': 'Wherever you want the value to appear in the sentence, place the placeholder.', 'start': 9477.62, 'duration': 3.885}, {'end': 9483.888, 'text': 'Have the placeholder for the variable there.', 'start': 9481.985, 'duration': 1.903}, {'end': 9487.172, 'text': 'So in our case, val is an integer type of variable.', 'start': 9484.208, 'duration': 2.964}, {'end': 9489.535, 'text': 'Therefore, we have the placeholder percentile d.', 'start': 9487.532, 'duration': 2.003}, {'end': 9497.797, 'text': "if val was a string type, we'd have %s, and after the quotes you put the modulus sign followed by your variable name.", 'start': 9490.035, 'duration': 7.762}, {'end': 9508.68, 'text': 'if you have two or more variables after the modulus sign within brackets, you can enter your variable names separated by commas like this.', 'start': 9497.797, 'duration': 10.883}, {'end': 9513.641, 'text': "so I just have one variable, and that's it.", 'start': 9508.68, 'duration': 4.961}, {'end': 9516.742, 'text': "now let's run this.", 'start': 9513.641, 'duration': 3.101}, {'end': 9517.422, 'text': 'save it first.', 'start': 9516.742, 'duration': 0.68}, {'end': 9532.146, 'text': 'So your first line enter a multiple of 7 is printed.', 'start': 9529.724, 'duration': 2.422}, {'end': 9536.871, 'text': "Let's enter 18 which is not a multiple of 7 and see what happens.", 'start': 9533.107, 'duration': 3.764}, {'end': 9546.26, 'text': 'So once again as we wanted the input needs to be taken from the user and this will continue until you do give a multiple of 7.', 'start': 9537.411, 'duration': 8.849}, {'end': 9552.346, 'text': 'So now if I give 14 there you go 14 is a multiple of 7 and a program has successfully terminated.', 'start': 9546.26, 'duration': 6.086}, {'end': 9560.339, 'text': "Now to better understand the flow of while loop let's debug this program.", 'start': 9556.636, 'duration': 3.703}, {'end': 9567.964, 'text': 'So the first thing you do is you keep a breaking point on your first line and then you go to run and debug the program.', 'start': 9560.439, 'duration': 7.525}, {'end': 9575.429, 'text': 'So in debugging we basically see the execution line by line and to do this we press F8.', 'start': 9569.745, 'duration': 5.684}, {'end': 9578.411, 'text': 'So after your breaking point is placed press F8.', 'start': 9575.769, 'duration': 2.642}, {'end': 9583.055, 'text': 'and the first line is printed in your console.', 'start': 9580.791, 'duration': 2.264}, {'end': 9587.183, 'text': "So let's give in an input, say 87.", 'start': 9583.717, 'duration': 3.466}, {'end': 9589.247, 'text': "Let's go back to our debugger.", 'start': 9587.183, 'duration': 2.064}, {'end': 9595.251, 'text': 'As you can see here, the value of val is now 87.', 'start': 9589.828, 'duration': 5.423}, {'end': 9602.497, 'text': 'and we have moved to the second line, where val mod 7 was checked against 0 and because it was not 0.', 'start': 9595.251, 'duration': 7.246}, {'end': 9607.361, 'text': "this means that the while's condition is true and you move into the statements within the while loop.", 'start': 9602.497, 'duration': 4.864}, {'end': 9611.124, 'text': 'So now we have reached the third line where we are taking the input from the user again.', 'start': 9607.661, 'duration': 3.463}, {'end': 9617.049, 'text': 'So once again we do f8 and as you see the user input needs to be taken again.', 'start': 9611.805, 'duration': 5.244}, {'end': 9620.852, 'text': "So now I'll give 42 which is a multiple of 7th.", 'start': 9617.589, 'duration': 3.263}, {'end': 9629.801, 'text': 'Enter and it goes back to the while loop because now once again it needs to check if val mod 7 is not equal to 0.', 'start': 9621.533, 'duration': 8.268}, {'end': 9633.705, 'text': 'And as you can see here now the value of val is 42.', 'start': 9629.801, 'duration': 3.904}, {'end': 9634.686, 'text': 'We press F8.', 'start': 9633.705, 'duration': 0.981}, {'end': 9639.591, 'text': "You'll notice how we jumped from line 2 to line 5.", 'start': 9635.147, 'duration': 4.444}, {'end': 9643.813, 'text': 'This is because this time 42 mod 7 was equal to 0.', 'start': 9639.591, 'duration': 4.222}, {'end': 9650.375, 'text': 'So the while resulted in false and the statement right after false which is your else is what got executed.', 'start': 9643.813, 'duration': 6.562}, {'end': 9653.777, 'text': 'So now you have the execution for the last print statement.', 'start': 9650.956, 'duration': 2.821}, {'end': 9661.882, 'text': 'And if we press F8 once again You see a program is terminated with the final output 42 is a multiple of 7.', 'start': 9654.437, 'duration': 7.445}, {'end': 9664.364, 'text': 'So I hope you understood while loop.', 'start': 9661.882, 'duration': 2.482}, {'end': 9667.527, 'text': "Let's move on to the next loop which is the for loop.", 'start': 9664.624, 'duration': 2.903}, {'end': 9670.949, 'text': 'Now for loop is used to iterate over a sequence.', 'start': 9668.027, 'duration': 2.922}, {'end': 9677.475, 'text': 'The sequence could be a list, it could be a tuple, it could be an array, a string or it could even be a range.', 'start': 9671.37, 'duration': 6.105}, {'end': 9685.141, 'text': 'Basically if you have certain elements arranged one after the other, a for loop can be used to iterate over these elements.', 'start': 9677.975, 'duration': 7.166}, {'end': 9687.983, 'text': "So now let's look at the syntax of for loop.", 'start': 9685.561, 'duration': 2.422}, {'end': 9690.885, 'text': 'You have the for keyword followed by counter.', 'start': 9688.223, 'duration': 2.662}, {'end': 9693.387, 'text': 'So counter is basically a variable.', 'start': 9691.245, 'duration': 2.142}, {'end': 9696.069, 'text': 'Say you want to repeat your name 10 times.', 'start': 9693.907, 'duration': 2.162}, {'end': 9701.693, 'text': "What you do is you always keep track of the number of times you've already repeated your names in your fingers.", 'start': 9696.329, 'duration': 5.364}, {'end': 9705.956, 'text': 'And that is exactly what a counter is to a for loop.', 'start': 9702.093, 'duration': 3.863}, {'end': 9710.359, 'text': "A counter keeps track of the position that you're in in the sequence.", 'start': 9706.356, 'duration': 4.003}, {'end': 9715.241, 'text': 'After counter you have another keyword in and then you have the sequence.', 'start': 9710.999, 'duration': 4.242}, {'end': 9722.205, 'text': 'So the sequence you can literally give your list there or you can have the variable which stores your list, tuple, array or string.', 'start': 9715.502, 'duration': 6.703}, {'end': 9725.287, 'text': "Now let's move into a demo for the for loop.", 'start': 9722.646, 'duration': 2.641}, {'end': 9727.769, 'text': "Once again I'll open my PyCharm.", 'start': 9725.908, 'duration': 1.861}, {'end': 9730.93, 'text': "So now we'll write a program to iterate over a list.", 'start': 9728.409, 'duration': 2.521}, {'end': 9736.854, 'text': "Now I'll store my list in the variable x and my list will have the elements 1, 6, simply learn.", 'start': 9731.331, 'duration': 5.523}, {'end': 9747.672, 'text': "Now using the for loop, I'll iterate over x.", 'start': 9743.57, 'duration': 4.102}, {'end': 9757.138, 'text': 'So my counter in this case will be i in and my sequence which is x, always followed by the colon.', 'start': 9747.672, 'duration': 9.466}, {'end': 9762.501, 'text': "And now I'll just print i.", 'start': 9759.9, 'duration': 2.601}, {'end': 9765.303, 'text': "Let's save this and run it.", 'start': 9762.501, 'duration': 2.802}, {'end': 9771.129, 'text': 'So as you can see here, the elements of x are printed.', 'start': 9767.867, 'duration': 3.262}, {'end': 9774.19, 'text': "There's one, six, followed by simply learn.", 'start': 9771.649, 'duration': 2.541}, {'end': 9782.514, 'text': 'So what it does is basically, when you give i in x, i assumes the value of the first element in x,', 'start': 9774.73, 'duration': 7.784}, {'end': 9788.197, 'text': 'prints this value and every time you go back to the for loop, i is incremented by one.', 'start': 9782.514, 'duration': 5.683}, {'end': 9796.001, 'text': 'So the second time you reach the for loop, i is now holding the value six, and the third time, i holds a value simply learn.', 'start': 9788.437, 'duration': 7.564}, {'end': 9799.682, 'text': 'Now the same thing can be done with just a string.', 'start': 9796.821, 'duration': 2.861}, {'end': 9811.846, 'text': 'So if x is equal to simply learn which is a string and we run this code now, you see all the letters of the string are printed one by one.', 'start': 9800.002, 'duration': 11.844}, {'end': 9818.889, 'text': 'So in case of strings, i holds the value of each character in the string right from the beginning up till the end.', 'start': 9812.287, 'duration': 6.602}, {'end': 9825.795, 'text': 'Now Python also allows nested loops and by nested loops we mean loops within loops.', 'start': 9820.293, 'duration': 5.502}, {'end': 9829.516, 'text': 'So now there are various ways that nested loops could be implemented.', 'start': 9826.375, 'duration': 3.141}, {'end': 9833.078, 'text': 'It could be a for loop within a for loop.', 'start': 9830.677, 'duration': 2.401}, {'end': 9840.38, 'text': 'It could be a while within a while loop, a for within a while loop, or a while within a for loop.', 'start': 9834.099, 'duration': 6.281}, {'end': 9848.362, 'text': "So in our demo for nested loops, we'll see one of the most popular applications for it, which is accessing the elements of a matrix.", 'start': 9841.08, 'duration': 7.282}, {'end': 9851.763, 'text': "So first, we'll begin with creating our matrix.", 'start': 9848.842, 'duration': 2.921}, {'end': 9856.964, 'text': 'Store my matrix in variable x.', 'start': 9852.783, 'duration': 4.181}, {'end': 9858.564, 'text': 'And my matrix will have two lists.', 'start': 9856.964, 'duration': 1.6}, {'end': 9863.505, 'text': 'One would contain the elements 1, 2, 3, and the other will be of alphabets a, b, c.', 'start': 9859.084, 'duration': 4.421}, {'end': 9871.897, 'text': 'Now with a matrix as you can see there are two lists within it.', 'start': 9867.952, 'duration': 3.945}, {'end': 9878.566, 'text': 'Our first for loop will iterate over the elements of x.', 'start': 9872.458, 'duration': 6.108}, {'end': 9879.808, 'text': 'So the range is x.', 'start': 9878.566, 'duration': 1.242}, {'end': 9886.336, 'text': 'So when I say that I iterates over the elements of X,', 'start': 9882.935, 'duration': 3.401}, {'end': 9893.899, 'text': 'I basically takes the value of the first list in the first iteration and the second list in the second iteration.', 'start': 9886.336, 'duration': 7.563}, {'end': 9901.261, 'text': 'Now our second for loop, which is nested within our first for loop, will iterate over the values within that list.', 'start': 9894.279, 'duration': 6.982}, {'end': 9905.263, 'text': 'So for J in I, let me explain this once again.', 'start': 9901.701, 'duration': 3.562}, {'end': 9916.232, 'text': 'So, if I points to your first list, j will be used to iterate over every element in your first list and in your second iteration,', 'start': 9905.723, 'duration': 10.509}, {'end': 9922.619, 'text': 'i will point towards your second list and j will iterate over every element in your second list.', 'start': 9916.232, 'duration': 6.387}, {'end': 9930.468, 'text': "We'll just print out the elements and let's run this.", 'start': 9924.781, 'duration': 5.687}, {'end': 9938.04, 'text': 'just increase the size of my console here.', 'start': 9935.578, 'duration': 2.462}, {'end': 9944.706, 'text': 'run it and as you can see, the elements of your matrix are printed 1, 2, 3 abc.', 'start': 9938.04, 'duration': 6.666}, {'end': 9952.292, 'text': 'now what if you want 1, 2, 3 to be printed in one line and your next list elements which are abc to be printed in the next line?', 'start': 9944.706, 'duration': 7.586}, {'end': 9955.595, 'text': 'so every time you print j, you do not want a next line.', 'start': 9952.292, 'duration': 3.303}, {'end': 9958.509, 'text': 'So put n equal to codes.', 'start': 9956.949, 'duration': 1.56}, {'end': 9965.451, 'text': 'What this does is that it removes the new line which is automatically put by the print function in Python.', 'start': 9958.809, 'duration': 6.642}, {'end': 9970.572, 'text': "And once you exit the inner for loop you're basically moving to the second list.", 'start': 9965.991, 'duration': 4.581}, {'end': 9975.314, 'text': 'So now you want a change in line and hence I just put a print statement here.', 'start': 9970.913, 'duration': 4.401}, {'end': 9976.494, 'text': "Let's run this.", 'start': 9975.834, 'duration': 0.66}, {'end': 9982.023, 'text': 'And as you see 1, 2, 3, A, B, C.', 'start': 9979.198, 'duration': 2.825}, {'end': 9985.208, 'text': 'Now nested loops can get a little confusing with the flow.', 'start': 9982.023, 'duration': 3.185}, {'end': 9988.112, 'text': "For this purpose, we'll also debug this code.", 'start': 9985.548, 'duration': 2.564}, {'end': 9993.902, 'text': 'Place your breaking point on the first line and debug.', 'start': 9990.136, 'duration': 3.766}, {'end': 10001.099, 'text': 'F8 and as you see X holds the two lists 1, 2, 3, A, B, C.', 'start': 9995.618, 'duration': 5.481}, {'end': 10009.721, 'text': 'Now F8 again and our first for loop is executed and I now holds the value 1, 2, 3 as you can see here.', 'start': 10001.099, 'duration': 8.622}, {'end': 10016.242, 'text': 'We now have moved into a second for loop and J holds the value 1.', 'start': 10010.181, 'duration': 6.061}, {'end': 10024.644, 'text': 'So I right now points to our first list in X and J points to the first element in our first list in X.', 'start': 10016.242, 'duration': 8.402}, {'end': 10030.774, 'text': 'Now once we execute the print statement, your first element gets printed.', 'start': 10025.891, 'duration': 4.883}, {'end': 10035.096, 'text': 'And once the first element is printed, you go back to your inner for loop.', 'start': 10031.154, 'duration': 3.942}, {'end': 10039.232, 'text': 'and now 2 gets printed.', 'start': 10037.731, 'duration': 1.501}], 'summary': 'The tutorial covers taking user input, while loops, for loops, and nested loops in python with a practical demonstration.', 'duration': 724.746, 'max_score': 9314.486, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s9314486.jpg'}, {'end': 10237.589, 'src': 'embed', 'start': 10209.977, 'weight': 1, 'content': [{'end': 10214.179, 'text': 'And as you can see here, all our characters, here, there, are printed.', 'start': 10209.977, 'duration': 4.202}, {'end': 10222.303, 'text': 'And once i is equal to full stop, the if statement results in true and we encounter the break statement which breaks the loop.', 'start': 10214.459, 'duration': 7.844}, {'end': 10227.82, 'text': 'So as you can see here, every character of our string is printed on a new line, which is not what we want.', 'start': 10222.816, 'duration': 5.004}, {'end': 10237.589, 'text': "So in our print statement, put end equal to quotes and this will ensure that you're not going to a new line every time.", 'start': 10229.942, 'duration': 7.647}], 'summary': 'Code prints all characters, breaks at full stop, ends without new lines.', 'duration': 27.612, 'max_score': 10209.977, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s10209977.jpg'}, {'end': 10302.059, 'src': 'embed', 'start': 10278.887, 'weight': 0, 'content': [{'end': 10286.95, 'text': 'we encounter the break statement which breaks the control to outside the loop and our program terminates successfully.', 'start': 10278.887, 'duration': 8.063}, {'end': 10290.992, 'text': "Now we'll have a look at our second loop control statement which is continue.", 'start': 10287.41, 'duration': 3.582}, {'end': 10296.675, 'text': 'So, in some cases, when a certain condition occurs within a loop, you do not want to break out of the loop,', 'start': 10291.371, 'duration': 5.304}, {'end': 10299.817, 'text': 'but you want to skip that particular iteration for the loop.', 'start': 10296.675, 'duration': 3.142}, {'end': 10302.059, 'text': 'So in this case you can use continue.', 'start': 10300.137, 'duration': 1.922}], 'summary': "The 'break' statement terminates the program successfully; 'continue' skips a loop iteration.", 'duration': 23.172, 'max_score': 10278.887, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s10278887.jpg'}, {'end': 11473.47, 'src': 'heatmap', 'start': 10750.033, 'weight': 0.768, 'content': [{'end': 10756.976, 'text': "Now let's try another case where we want to print all the even numbers in the range of 0 to 20.", 'start': 10750.033, 'duration': 6.943}, {'end': 10761.097, 'text': 'So once again we have for i which is our counter variable in.', 'start': 10756.976, 'duration': 4.121}, {'end': 10772.281, 'text': 'Now when you want to specify a range of values, you use the function range and give your starting value and your ending value.', 'start': 10761.637, 'duration': 10.644}, {'end': 10781.096, 'text': 'So the thing with range is guys that if you keep your ending value as 20, it will only consider the numbers from 0 to 19.', 'start': 10772.952, 'duration': 8.144}, {'end': 10783.357, 'text': 'But we want 20 also to be included.', 'start': 10781.096, 'duration': 2.261}, {'end': 10785.838, 'text': 'So our ending value is 21 here.', 'start': 10783.377, 'duration': 2.461}, {'end': 10787.679, 'text': 'Put your colons.', 'start': 10785.858, 'duration': 1.821}, {'end': 10791.761, 'text': "And let's just see what this prints first.", 'start': 10789.62, 'duration': 2.141}, {'end': 10794.882, 'text': "So print and we'll run this code.", 'start': 10792.221, 'duration': 2.661}, {'end': 10800.836, 'text': 'So here the for loop printed all the values from 0 up till 20.', 'start': 10795.403, 'duration': 5.433}, {'end': 10806.54, 'text': 'Now we want only the even values between 0 to 20 to be printed.', 'start': 10800.836, 'duration': 5.704}, {'end': 10816.187, 'text': 'One way of doing this is that you can check using an if statement if every value that is stored in i is a multiple of 2,', 'start': 10807.361, 'duration': 8.826}, {'end': 10821.792, 'text': 'or you can simply modify this range function slightly and put comma 2..', 'start': 10816.187, 'duration': 5.605}, {'end': 10826.135, 'text': 'So here what this means is that every second element is only printed.', 'start': 10821.792, 'duration': 4.343}, {'end': 10830.298, 'text': 'So 0 will be printed, 1 would be skipped and then 2 would be printed.', 'start': 10826.455, 'duration': 3.843}, {'end': 10831.772, 'text': "Let's see that.", 'start': 10831.152, 'duration': 0.62}, {'end': 10832.793, 'text': 'Run it.', 'start': 10832.433, 'duration': 0.36}, {'end': 10840.156, 'text': 'So as you see here, in just two lines of code, we got all our even numbers between 0 to 20 printed.', 'start': 10833.453, 'duration': 6.703}, {'end': 10843.758, 'text': 'Now say we want to find the sum of all these even numbers.', 'start': 10840.776, 'duration': 2.982}, {'end': 10853.002, 'text': "But this time, because we want to use a slightly different approach, we'll use the if statement to know if the value in i is even or not.", 'start': 10844.018, 'duration': 8.984}, {'end': 10858.224, 'text': 'So the first line would be about the same except you delete the 2 from the range.', 'start': 10853.542, 'duration': 4.682}, {'end': 10860.935, 'text': 'and then you have if statement.', 'start': 10858.795, 'duration': 2.14}, {'end': 10871.778, 'text': 'so if i mod 2 is equal to equal to 0, you will have a variable, say sum, which is equal to sum plus i.', 'start': 10860.935, 'duration': 10.843}, {'end': 10882.56, 'text': "so what we're doing here is i will hold a value between 0 to 21 and then this value is tested to check if it is a multiple of 2, that is,", 'start': 10871.778, 'duration': 10.782}, {'end': 10887.261, 'text': 'if division by 2 gives any remainder or not in the if statement.', 'start': 10882.56, 'duration': 4.701}, {'end': 10896.28, 'text': 'And if it does not give any remainder, that is, if the remainder is 0, then we come in and we keep adding this i to another variable,', 'start': 10887.794, 'duration': 8.486}, {'end': 10897.521, 'text': 'which in our case is sum.', 'start': 10896.28, 'duration': 1.241}, {'end': 10901.264, 'text': 'So sum is the addition of all the even numbers.', 'start': 10898.021, 'duration': 3.243}, {'end': 10907.108, 'text': 'Now we have not declared sum as yet and sum needs to have some initial value.', 'start': 10901.864, 'duration': 5.244}, {'end': 10911.891, 'text': 'So just outside your for loop, put sum equal to 0.', 'start': 10907.708, 'duration': 4.183}, {'end': 10914.273, 'text': 'So here we have added all our even numbers.', 'start': 10911.891, 'duration': 2.382}, {'end': 10919.581, 'text': 'Now once this entire procedure is done, we can print a variable sum.', 'start': 10914.773, 'duration': 4.808}, {'end': 10927.327, 'text': "Let's run this code and the sum of all the even numbers between 0 to 20 is 110.", 'start': 10920.581, 'duration': 6.746}, {'end': 10928.868, 'text': "Now let's move on to our next demo.", 'start': 10927.327, 'duration': 1.541}, {'end': 10930.676, 'text': "where we'll be printing patterns.", 'start': 10929.315, 'duration': 1.361}, {'end': 10936.101, 'text': 'So patterns are a great way to implement for loops and also to sharpen your programming skills.', 'start': 10930.996, 'duration': 5.105}, {'end': 10939.403, 'text': 'In our previous video, we had a pattern with asterisk symbols.', 'start': 10936.381, 'duration': 3.022}, {'end': 10942.626, 'text': 'We printed an inverted triangle using asterisks.', 'start': 10939.523, 'duration': 3.103}, {'end': 10946.289, 'text': "So here, this is the pattern we'll be printing with numbers.", 'start': 10942.986, 'duration': 3.303}, {'end': 10951.854, 'text': "So for this particular program, we'll be taking input from the user specifying a number.", 'start': 10946.769, 'duration': 5.085}, {'end': 10962.203, 'text': 'So in this example, the number entered by the user would be 5 and as you can see, The number given by the user is the last digit of the last row.', 'start': 10952.154, 'duration': 10.049}, {'end': 10965.106, 'text': 'Also it is the number of rows in the pattern.', 'start': 10962.583, 'duration': 2.523}, {'end': 10967.308, 'text': "So let's begin coding this.", 'start': 10965.526, 'duration': 1.782}, {'end': 10971.812, 'text': "First we'll take the input from the user in a variable say n.", 'start': 10967.808, 'duration': 4.004}, {'end': 10975.296, 'text': 'So all the inputs given by the users always in string format.', 'start': 10971.812, 'duration': 3.484}, {'end': 10978.719, 'text': 'In case of Python we need to convert this into int.', 'start': 10975.596, 'duration': 3.123}, {'end': 10982.461, 'text': 'So input Enter a number.', 'start': 10979.4, 'duration': 3.061}, {'end': 10987.043, 'text': "Now we'll have the first for loop which is for every row.", 'start': 10983.042, 'duration': 4.001}, {'end': 11000.441, 'text': 'So for i in range of 1 to n plus 1 because if we give n then the range will be taken only from n to n minus 1.', 'start': 10987.364, 'duration': 13.077}, {'end': 11001.721, 'text': "Now that's our outer for loop.", 'start': 11000.441, 'duration': 1.28}, {'end': 11009.443, 'text': "And in case of patterns as you go through others, you'll notice that there are at least two for loops even for the most simple patterns.", 'start': 11001.981, 'duration': 7.462}, {'end': 11013.144, 'text': 'So here is where we implement nested loops.', 'start': 11010.103, 'duration': 3.041}, {'end': 11016.604, 'text': 'Specifically nested for loops.', 'start': 11014.664, 'duration': 1.94}, {'end': 11020.705, 'text': 'Now the outer for loop as I mentioned earlier is for the number of rows.', 'start': 11017.045, 'duration': 3.66}, {'end': 11024.366, 'text': "And we'll have the inner for loop for every element in the row.", 'start': 11021.145, 'duration': 3.221}, {'end': 11031.942, 'text': 'For j in range of again 1 up till i.', 'start': 11024.586, 'duration': 7.356}, {'end': 11043.469, 'text': 'So when we consider our outer for loop, it goes from 1 then 2, 3, 4 and then 5 and the inner for loop prints from 1 up till the ith number.', 'start': 11031.942, 'duration': 11.527}, {'end': 11056.117, 'text': "Now inside our inner for loop, we'll just print j and we do not want to go to the next line immediately after printing j, so put end equal to quotes.", 'start': 11044.169, 'duration': 11.948}, {'end': 11062.041, 'text': 'But once we complete printing the entire row, then we want to move on to the next line.', 'start': 11056.837, 'duration': 5.204}, {'end': 11068.245, 'text': "So after our inner for loop, that is under our outer for loop, we'll print the new line.", 'start': 11062.521, 'duration': 5.724}, {'end': 11070.646, 'text': 'So just put a plain print statement here.', 'start': 11068.645, 'duration': 2.001}, {'end': 11072.468, 'text': "Now let's run this code.", 'start': 11071.247, 'duration': 1.221}, {'end': 11084.103, 'text': "Enter a number, we'll start with 5 and as you can see here, 1, 2, 1, 2, 3, 1, 2, 3, 4 has been printed.", 'start': 11075.89, 'duration': 8.213}, {'end': 11086.526, 'text': 'But the fifth row is not printed yet.', 'start': 11084.484, 'duration': 2.042}, {'end': 11090.331, 'text': "So if you go back to your code, You'll see where the error is.", 'start': 11087.266, 'duration': 3.065}, {'end': 11092.252, 'text': "It's in the second for loop.", 'start': 11090.511, 'duration': 1.741}, {'end': 11096.696, 'text': 'We have run it from 1 to i and not i plus 1.', 'start': 11092.513, 'duration': 4.183}, {'end': 11104.882, 'text': 'So what happened here is that since we ran it till i, when i was 1, the inner for loop ran 0 number of times.', 'start': 11096.696, 'duration': 8.186}, {'end': 11108.445, 'text': "And therefore, it's the first row that was not printed.", 'start': 11105.523, 'duration': 2.922}, {'end': 11110.887, 'text': 'And the second row printed just 1.', 'start': 11108.805, 'duration': 2.082}, {'end': 11113.429, 'text': 'Our third row printed just 1, 2 and so on.', 'start': 11110.887, 'duration': 2.542}, {'end': 11116.251, 'text': "So we'll make this correction and run it again.", 'start': 11113.969, 'duration': 2.282}, {'end': 11118.373, 'text': 'Enter 5 and there you go.', 'start': 11116.271, 'duration': 2.102}, {'end': 11120.064, 'text': 'a pattern is printed.', 'start': 11118.883, 'duration': 1.181}, {'end': 11123.006, 'text': "Let's run it again and try a different number this time.", 'start': 11120.524, 'duration': 2.482}, {'end': 11124.688, 'text': 'Say 10.', 'start': 11123.547, 'duration': 1.141}, {'end': 11127.67, 'text': 'So a pattern is printed for any number that you enter.', 'start': 11124.688, 'duration': 2.982}, {'end': 11134.133, 'text': 'Now another very popular application of nested for loops is accessing the elements of a matrix.', 'start': 11128.328, 'duration': 5.805}, {'end': 11139.697, 'text': 'So here we implement matrix as a list containing lists,', 'start': 11134.533, 'duration': 5.164}, {'end': 11146.262, 'text': "and what we'll do is we'll take two such lists or two such matrices from the user and we'll find their sum.", 'start': 11139.697, 'duration': 6.565}, {'end': 11154.228, 'text': "So to add two matrices it's very important that they have the same dimensions that is they have the same number of rows and columns.", 'start': 11146.642, 'duration': 7.586}, {'end': 11157.511, 'text': "So we'll take the number of rows and columns from the user first.", 'start': 11154.769, 'duration': 2.742}, {'end': 11164.372, 'text': 'and convert this to int.', 'start': 11163.032, 'duration': 1.34}, {'end': 11177.995, 'text': 'Next take the number of columns, my variable c.', 'start': 11165.252, 'duration': 12.743}, {'end': 11183.416, 'text': "Now we'll create our list, our first list which is x.", 'start': 11177.995, 'duration': 5.421}, {'end': 11184.936, 'text': 'Right now x is empty.', 'start': 11183.416, 'duration': 1.52}, {'end': 11191.557, 'text': 'Okay so our first for loop will be to iterate over the elements in our list x.', 'start': 11185.836, 'duration': 5.721}, {'end': 11202.807, 'text': 'So for I in R because R is the number of elements in X and C is the number of elements in the lists in X.', 'start': 11192.182, 'duration': 10.625}, {'end': 11205.909, 'text': 'So for I in R and now our inner for loop.', 'start': 11202.807, 'duration': 3.102}, {'end': 11216.113, 'text': 'So our outer for loop are for the lists in X that is for the elements in X and our inner for loop will be for the elements within those lists in X.', 'start': 11206.209, 'duration': 9.904}, {'end': 11218.555, 'text': 'So for J in C.', 'start': 11216.113, 'duration': 2.442}, {'end': 11228.626, 'text': "So the approach we'll be taking is that we'll first create those individual lists within x and then we'll add that list to x.", 'start': 11219.798, 'duration': 8.828}, {'end': 11236.172, 'text': "So let's name our inside list as val and to add elements to a list use the function insert.", 'start': 11228.626, 'duration': 7.546}, {'end': 11243.158, 'text': 'Now the element would be inserted in the jth position and the value for the element would be again taken from the user.', 'start': 11236.673, 'duration': 6.485}, {'end': 11249.617, 'text': 'So input enter the i into jth element.', 'start': 11243.619, 'duration': 5.998}, {'end': 11262.58, 'text': "So we'll enter the placeholders to percentile element i, j.", 'start': 11249.997, 'duration': 12.583}, {'end': 11264.2, 'text': "So we haven't declared val yet.", 'start': 11262.58, 'duration': 1.62}, {'end': 11265.061, 'text': "Let's do that.", 'start': 11264.44, 'duration': 0.621}, {'end': 11267.361, 'text': "It's initially an empty list.", 'start': 11265.081, 'duration': 2.28}, {'end': 11274.443, 'text': 'So all the values within our list val would be inserted within the inner for loop.', 'start': 11267.901, 'duration': 6.542}, {'end': 11278.533, 'text': 'So once we are out of the inner for loop, our list val would be ready.', 'start': 11274.723, 'duration': 3.81}, {'end': 11282.694, 'text': 'So now we can add this list val to our list x.', 'start': 11278.853, 'duration': 3.841}, {'end': 11289.456, 'text': 'So outside here, put x.insert at position i, the insert val.', 'start': 11282.694, 'duration': 6.762}, {'end': 11291.536, 'text': "I'll explain this part once again.", 'start': 11289.916, 'duration': 1.62}, {'end': 11305.119, 'text': 'So our outer for loop for i in R, where R is the number of elements in x, that is the number of lists within our parent list x, would be counted in i.', 'start': 11292.016, 'duration': 13.103}, {'end': 11315.084, 'text': 'And our inner for loop, which is for the elements within our child list, could be counted in j and inside our inner for loop.', 'start': 11305.119, 'duration': 9.965}, {'end': 11323.659, 'text': "we'll take the input from the user and insert it into our temporary list val, and then, once we exited the inner for loop,", 'start': 11315.084, 'duration': 8.575}, {'end': 11331.606, 'text': 'we will add this list val to our parent list x and we are done with taking the input for the first list.', 'start': 11323.659, 'duration': 7.947}, {'end': 11334.969, 'text': 'Now in the similar manner, we will take the input for the second list too.', 'start': 11331.846, 'duration': 3.123}, {'end': 11340.854, 'text': 'We will name our second list y which is initially empty and you can just copy paste this code here.', 'start': 11335.289, 'duration': 5.565}, {'end': 11344.297, 'text': 'Change the x to y.', 'start': 11342.756, 'duration': 1.541}, {'end': 11345.584, 'text': 'and that should do it.', 'start': 11344.864, 'duration': 0.72}, {'end': 11348.825, 'text': 'Now one thing we missed out here is clearing val.', 'start': 11346.224, 'duration': 2.601}, {'end': 11358.627, 'text': "We don't necessarily have to do this, because every time you go back to the inner for loop and you say input this value at the jth position of val,", 'start': 11349.545, 'duration': 9.082}, {'end': 11361.928, 'text': 'the previous value will be automatically overwritten.', 'start': 11358.627, 'duration': 3.301}, {'end': 11369.51, 'text': "but still we'll clear it every time we exit the inner for loop.", 'start': 11361.928, 'duration': 7.582}, {'end': 11373.851, 'text': 'Okay so we are done with taking the input for both our lists, containing lists.', 'start': 11369.53, 'duration': 4.321}, {'end': 11377.117, 'text': 'And now we move on to the part where we find their sum.', 'start': 11374.355, 'duration': 2.762}, {'end': 11382.081, 'text': 'So first we create a variable sum which will be an empty list.', 'start': 11377.658, 'duration': 4.423}, {'end': 11386.044, 'text': 'Now this list will hold the added values from the other two lists.', 'start': 11382.301, 'duration': 3.743}, {'end': 11392.45, 'text': 'So again for accessing the elements of a list containing lists we need nested for loops.', 'start': 11386.645, 'duration': 5.805}, {'end': 11399.055, 'text': 'So for i in R once again and for j in C.', 'start': 11393.831, 'duration': 5.224}, {'end': 11408.92, 'text': "So just like when we took input, when we are finding the sum 2, we'll first add the elements of the child list.", 'start': 11400.714, 'duration': 8.206}, {'end': 11415.145, 'text': 'So say find the sum of the first list within x and the first list within y.', 'start': 11409.561, 'duration': 5.584}, {'end': 11420.369, 'text': "And once we find the sum of these two lists, we'll put that into our parent list sum.", 'start': 11415.145, 'duration': 5.224}, {'end': 11423.432, 'text': "So we'll use val again for our temporary list.", 'start': 11420.61, 'duration': 2.822}, {'end': 11434.132, 'text': 'and val.insert at the jth position the sum of the elements in the jth position of our ith list in x and y.', 'start': 11424.048, 'duration': 10.084}, {'end': 11442.574, 'text': 'So x of i, j plus y of i, j.', 'start': 11434.132, 'duration': 8.442}, {'end': 11450.137, 'text': 'And once we come out of the inner for loop, that means our val list is complete, we can add this list to our parent list sum.', 'start': 11442.574, 'duration': 7.563}, {'end': 11455.556, 'text': 'So sum.insert at the i-th position, insert val.', 'start': 11450.557, 'duration': 4.999}, {'end': 11459.439, 'text': 'And every time we exit the inner for loop, we also clear val.', 'start': 11456.016, 'duration': 3.423}, {'end': 11465.264, 'text': "And that's how you take two lists of lists from the user, find their sum and finally print it.", 'start': 11459.899, 'duration': 5.365}, {'end': 11467.205, 'text': 'So just print sum.', 'start': 11465.784, 'duration': 1.421}, {'end': 11473.47, 'text': "Let's run this code, enter the number of rows, let's start with 2, number of columns 2.", 'start': 11467.866, 'duration': 5.604}], 'summary': 'Demonstrated printing even numbers, patterns, and adding matrices using python with explanations and code examples.', 'duration': 723.437, 'max_score': 10750.033, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s10750033.jpg'}, {'end': 11009.443, 'src': 'embed', 'start': 10979.4, 'weight': 5, 'content': [{'end': 10982.461, 'text': 'So input Enter a number.', 'start': 10979.4, 'duration': 3.061}, {'end': 10987.043, 'text': "Now we'll have the first for loop which is for every row.", 'start': 10983.042, 'duration': 4.001}, {'end': 11000.441, 'text': 'So for i in range of 1 to n plus 1 because if we give n then the range will be taken only from n to n minus 1.', 'start': 10987.364, 'duration': 13.077}, {'end': 11001.721, 'text': "Now that's our outer for loop.", 'start': 11000.441, 'duration': 1.28}, {'end': 11009.443, 'text': "And in case of patterns as you go through others, you'll notice that there are at least two for loops even for the most simple patterns.", 'start': 11001.981, 'duration': 7.462}], 'summary': 'Python code uses for loops to create patterns, requiring at least two loops for even simple patterns.', 'duration': 30.043, 'max_score': 10979.4, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s10979400.jpg'}], 'start': 8400.172, 'title': 'Python control structures and loops', 'summary': 'Covers python if-else statements, if-else ladder, loops including while and for loops, and loop control statements like break and continue. it includes demonstrations and examples for decision-making, iterating over sequences, and controlling loop flow.', 'chapters': [{'end': 8800.426, 'start': 8400.172, 'title': 'Python if-else statements', 'summary': 'Explains python if-else statements, covering the syntax, working, and examples. it demonstrates the removal of elements from s1 found in s2, if-else decision-making statement, if, if-else, and nested if formats, with examples and code demonstrations.', 'duration': 400.254, 'highlights': ['The chapter explains the removal of elements from S1 found in S2, demonstrating the result as 1 and 7.', 'It covers the if statement syntax, working, and a flowchart explanation with examples.', 'The if-else statement syntax, working, flowchart explanation, and an example demonstrating the check for odd or even numbers are detailed.', 'The nested if statement syntax, working, flowchart explanation, and a demonstration with code examples are provided.']}, {'end': 9170.144, 'start': 8800.846, 'title': 'If-else ladder and demonstrations', 'summary': 'Discusses the concept of if-else ladder and demonstrates its application with examples, including checking for even and odd numbers and identifying vowels and consonants in python.', 'duration': 369.298, 'highlights': ['The if-else ladder is explained with examples of checking for even and odd numbers and identifying vowels and consonants in Python, showcasing the control flow and syntax of the ladder.', 'The demonstration uses if-elif-else ladder to check if a variable is a vowel or a consonant, showing the sequential evaluation of conditions and the execution of corresponding statements in Python.', "The chapter highlights the need for if-elif-else ladder for handling multiple conditions compared to a binary approach, emphasizing the ladder's ability to cater to various scenarios.", 'The importance of the if-elif-else ladder is emphasized, as it allows for a more nuanced approach to handling multiple conditions compared to binary approaches in Python.']}, {'end': 10096.5, 'start': 9170.604, 'title': 'Python loops: basics and syntax', 'summary': 'Explains the concept of loops, including while, for, and nested loops in python, with a focus on syntax and functionality, and includes a demonstration to iterate over a list and a matrix.', 'duration': 925.896, 'highlights': ['The chapter explains the concept of loops, including while, for, and nested loops in Python. It provides an overview of the different types of loops and their usage, setting the foundation for the subsequent detailed explanations.', 'Demonstration of while loop functionality in Python with an interactive program to check for multiples of 7. The detailed explanation and demonstration of the while loop, including a practical example to continuously prompt user input until a condition is met, enhancing understanding of its functionality.', 'Syntax and demonstration of for loop usage to iterate over a list and a string in Python. The detailed explanation and demonstration of the for loop, showcasing its usage to iterate over sequences like lists and strings, reinforcing comprehension through practical examples.', 'Illustration of nested loops functionality with a detailed example of accessing elements of a matrix in Python. The detailed explanation and demonstration of nested loops, particularly nested for loops, to access and print elements of a matrix, providing a practical application to solidify understanding.']}, {'end': 10483.669, 'start': 10096.901, 'title': 'Python loop control statements', 'summary': 'Explains the usage of break and continue loop control statements in python, showcasing their functionality through examples in string iteration and number filtering, emphasizing their impact on loop flow and program termination.', 'duration': 386.768, 'highlights': ['The break keyword allows immediate exit from a loop when a certain condition occurs, demonstrated through an example where it breaks the loop upon encountering a full stop in the string iteration, resulting in only the first sentence being printed. break keyword usage, example demonstration, impact on loop flow', 'The continue keyword skips a particular iteration within a loop based on a condition, illustrated by an example where it skips printing numbers greater than 10 in a list iteration, maintaining the loop flow and filtering numbers accordingly. continue keyword usage, example demonstration, impact on loop flow']}, {'end': 11586.649, 'start': 10483.669, 'title': 'Understanding python for loops', 'summary': 'Explains the syntax and applications of for loops in python, including iterating over a sequence, accessing elements of a list, printing characters of a string, printing even numbers, finding the sum of even numbers, printing patterns using nested for loops, and adding two matrices using nested for loops.', 'duration': 1102.98, 'highlights': ['The for loop is used to iterate over a sequence, such as a list, tuple, array, string, or range of numbers. It explains that for loops are used to iterate over a sequence, which can be a list, tuple, array, string, or even a range of numbers.', 'Demonstrates using a for loop to access and print elements of a list, simplifying the process compared to individually specifying indexes for each element. It demonstrates using a for loop to access and print elements of a list, simplifying the process compared to individually specifying indexes for each element.', 'Illustrates using a for loop to print every character in a string separately, and then printing all characters together in one line. It illustrates using a for loop to print every character in a string separately, and then printing all characters together in one line.', 'Explains using a for loop to print even numbers within a specified range, and modifying the range function to print every second element. It explains using a for loop to print even numbers within a specified range, and modifying the range function to print every second element.', 'Demonstrates using a for loop and if statement to find the sum of all even numbers within a range. It demonstrates using a for loop and if statement to find the sum of all even numbers within a range.', 'Illustrates using nested for loops to print patterns, taking user input to determine the number of rows and implementing nested for loops to print the pattern. It illustrates using nested for loops to print patterns, taking user input to determine the number of rows and implementing nested for loops to print the pattern.', 'Demonstrates using nested for loops to add two matrices, taking user input to create the matrices and finding their sum using nested for loops. It demonstrates using nested for loops to add two matrices, taking user input to create the matrices and finding their sum using nested for loops.']}], 'duration': 3186.477, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s8400172.jpg', 'highlights': ['The chapter covers the if-else statement syntax, working, and flowchart explanation with examples.', 'The if-else ladder is explained with examples of checking for even and odd numbers and identifying vowels and consonants in Python.', 'The chapter explains the concept of loops, including while, for, and nested loops in Python.', 'The break keyword allows immediate exit from a loop when a certain condition occurs, demonstrated through an example where it breaks the loop upon encountering a full stop in the string iteration.', 'The continue keyword skips a particular iteration within a loop based on a condition, illustrated by an example where it skips printing numbers greater than 10 in a list iteration.', 'The for loop is used to iterate over a sequence, such as a list, tuple, array, string, or range of numbers.']}, {'end': 13446.232, 'segs': [{'end': 11815.528, 'src': 'embed', 'start': 11783.863, 'weight': 3, 'content': [{'end': 11786.245, 'text': "So I'll explain this once again before we run it.", 'start': 11783.863, 'duration': 2.382}, {'end': 11793.092, 'text': 'We have i equal to 1 where i is something that we are using as a counter and then we have our while loop.', 'start': 11786.526, 'duration': 6.566}, {'end': 11801.519, 'text': 'So in our while loop we are checking if i is less than equal to 10 and since the first time i is equal to 1, we will enter the while loop.', 'start': 11793.292, 'duration': 8.227}, {'end': 11806.022, 'text': 'simply learn will be printed and in the very next line we are incrementing i.', 'start': 11801.519, 'duration': 4.503}, {'end': 11809.744, 'text': 'So every time simply learn is printed, i gets incremented,', 'start': 11806.022, 'duration': 3.722}, {'end': 11815.528, 'text': "we go back to the while loop and it's checked against this condition whether it's less than equal to 10..", 'start': 11809.744, 'duration': 5.784}], 'summary': "Explanation of a while loop with i=1, printing 'simply learn' and incrementing i until i<=10.", 'duration': 31.665, 'max_score': 11783.863, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s11783863.jpg'}, {'end': 12070.901, 'src': 'embed', 'start': 12040.458, 'weight': 5, 'content': [{'end': 12047.042, 'text': 'So to check if a number is even, the remainder from the division of the number with 2 should be equal to 0.', 'start': 12040.458, 'duration': 6.584}, {'end': 12051.205, 'text': 'So i mod 2 equal to equal to 0.', 'start': 12047.042, 'duration': 4.163}, {'end': 12054.907, 'text': 'And if that is the case, we can find the sum of the number.', 'start': 12051.205, 'duration': 3.702}, {'end': 12061.231, 'text': "And whether that's the case or not, we still need to increment i every time within the while loop.", 'start': 12055.527, 'duration': 5.704}, {'end': 12070.901, 'text': 'So sum would come under the if statement but i plus equal to 1 would remain under the while loop and not within the if statement.', 'start': 12061.678, 'duration': 9.223}], 'summary': "To check if a number is even, the remainder from division with 2 should be 0. increment 'i' within the while loop.", 'duration': 30.443, 'max_score': 12040.458, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s12040458.jpg'}, {'end': 12477.546, 'src': 'embed', 'start': 12449.853, 'weight': 0, 'content': [{'end': 12454.415, 'text': 'So nr is now 7 because nr was previously just 0.', 'start': 12449.853, 'duration': 4.562}, {'end': 12458.136, 'text': '0 into 10 is 0 and plus c which is 7.', 'start': 12454.415, 'duration': 3.721}, {'end': 12459.417, 'text': 'So nr is 7.', 'start': 12458.136, 'duration': 1.281}, {'end': 12469.041, 'text': 'Press F8 again and this time as you can see down here the value of n has been changed to 46 because we divided it by 10.', 'start': 12459.417, 'duration': 9.624}, {'end': 12472.482, 'text': 'So right now c is 7 from a previous iteration.', 'start': 12469.041, 'duration': 3.441}, {'end': 12475.704, 'text': 'n is 46 and nr is 7.', 'start': 12472.962, 'duration': 2.742}, {'end': 12477.546, 'text': 'Now once again we go back to our while loop.', 'start': 12475.704, 'duration': 1.842}], 'summary': 'Nr is now 7, n has changed to 46 after dividing by 10.', 'duration': 27.693, 'max_score': 12449.853, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s12449853.jpg'}, {'end': 13306.895, 'src': 'embed', 'start': 13275.762, 'weight': 1, 'content': [{'end': 13277.323, 'text': 'So you put a break statement there.', 'start': 13275.762, 'duration': 1.561}, {'end': 13282.267, 'text': "And we'll come back here where we print how many digits were guessed right.", 'start': 13278.364, 'duration': 3.903}, {'end': 13288.712, 'text': "Since all of them weren't, we need to give the user another try where the user again enters a four digit number.", 'start': 13282.587, 'duration': 6.125}, {'end': 13292.175, 'text': "So once again we'll just copy paste this input line here.", 'start': 13289.112, 'duration': 3.063}, {'end': 13297.312, 'text': 'so that the user can again guess the number,', 'start': 13293.891, 'duration': 3.421}, {'end': 13306.895, 'text': 'and this process will continue until all the numbers are guessed right and the control goes into this if statement and breaks out of this while loop.', 'start': 13297.312, 'duration': 9.583}], 'summary': 'The program allows the user to guess a four-digit number, offering multiple tries until all digits are guessed right.', 'duration': 31.133, 'max_score': 13275.762, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s13275762.jpg'}, {'end': 13384.583, 'src': 'embed', 'start': 13355.259, 'weight': 4, 'content': [{'end': 13358.862, 'text': 'But what is this percentile D? Percentile D is just a placeholder.', 'start': 13355.259, 'duration': 3.603}, {'end': 13363.865, 'text': 'So we need to place the value of a variable COR there.', 'start': 13359.102, 'duration': 4.763}, {'end': 13367.367, 'text': "Let's run this program once again.", 'start': 13365.706, 'duration': 1.661}, {'end': 13370.589, 'text': '6748 is my guess.', 'start': 13367.387, 'duration': 3.202}, {'end': 13373.031, 'text': 'So zero digits were guessed right.', 'start': 13370.91, 'duration': 2.121}, {'end': 13374.072, 'text': "Let's try again.", 'start': 13373.311, 'duration': 0.761}, {'end': 13380.222, 'text': '8256 Again, zero digits were guessed right.', 'start': 13374.072, 'duration': 6.15}, {'end': 13384.583, 'text': 'Okay, so there are a number of permutations.', 'start': 13382.702, 'duration': 1.881}], 'summary': "Using placeholder 'percentile d', guessing numbers, zero correct digits guessed.", 'duration': 29.324, 'max_score': 13355.259, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s13355259.jpg'}], 'start': 11586.649, 'title': 'Python programming concepts', 'summary': 'Covers python programming concepts including while loops, reversing integers, extracting digits and handling errors, nested while loop patterns, and a number guessing game in python, providing practical examples and use cases for each concept.', 'chapters': [{'end': 12138.841, 'start': 11586.649, 'title': 'While loops in python', 'summary': 'Explains the usage and syntax of while loops in python, with examples of printing a string using a while loop, finding the sum of natural numbers and even numbers, and reversing an integer, demonstrating the importance of correct initialization of variables and conditions for while loops.', 'duration': 552.192, 'highlights': ['Explaining the usage and syntax of while loops in Python with examples The chapter provides a clear explanation of the usage and syntax of while loops in Python, demonstrating their application through examples of printing a string, finding the sum of natural numbers, sum of even numbers, and reversing an integer.', "Demonstrating the importance of correct initialization of variables for while loops The examples highlight the importance of correctly initializing variables such as the counter and sum to ensure accurate execution of while loops, as demonstrated by the need to initialize 'i' as a counter and 'sum' as the sum variable.", "Emphasizing the significance of conditions in while loops for accurate execution The chapter emphasizes the importance of defining accurate conditions within while loops, as demonstrated by the need to check if 'i' is less than or equal to 10 to iterate through the while loop and the importance of checking if 'i' is an even number to find the sum of even numbers."]}, {'end': 12360.561, 'start': 12139.022, 'title': 'Reverse integer', 'summary': 'Discusses how to reverse an integer input provided by the user and store the reversed number in another variable, including the process of extracting digits, reversing the number, and updating the original number, as discussed in a python context.', 'duration': 221.539, 'highlights': ['The process of reversing the integer involves extracting the last digit from the original number and adding it to the front of the reversed number, achieved by using modulus function and multiplication by 10 in Python. The process of reversing the integer involves extracting the last digit from the original number and adding it to the front of the reversed number, achieved by using modulus function and multiplication by 10 in Python.', 'Updating the original number involves removing the last digit from n by dividing it by 10, ensuring the progression through all digits during the reversal process. Updating the original number involves removing the last digit from n by dividing it by 10, ensuring the progression through all digits during the reversal process.', 'The necessity of converting the user input from string format to integer for the reversal process to be executed accurately. The necessity of converting the user input from string format to integer for the reversal process to be executed accurately.']}, {'end': 12732.239, 'start': 12360.561, 'title': 'Extracting digits and handling errors in python', 'summary': 'Demonstrates a python program to extract digits from a number and a program to handle index errors using try-except blocks. the first program iterates through a while loop to extract digits and reverse them, resulting in the expected output. the second program calculates the length of a list using a while loop and encounters an index error, which is then handled using a try-except block.', 'duration': 371.678, 'highlights': ['The first program iterates through a while loop to extract digits and reverse them, resulting in the expected output. Program iterates through while loop, extracting and reversing digits', 'The second program calculates the length of a list using a while loop and encounters an index error, which is then handled using a try-except block. Program calculates list length, encounters index error, handled using try-except block']}, {'end': 12914.75, 'start': 12733.257, 'title': 'Nested while loop pattern', 'summary': 'Demonstrates handling errors in a while loop, finding the length of a list using while loop, and printing a pattern using nested while loops with user input number of rows and incrementing digits as per the row number.', 'duration': 181.493, 'highlights': ['Nested while loop is used to print a pattern with user input number of rows and incrementing digits as per the row number, for example, digit 1 is printed once, digit 2 is printed twice, and so on.', 'Demonstration of finding the length of a list using a while loop instead of the len function.', 'Handling errors and ignoring them in a while loop is showcased.']}, {'end': 13215.159, 'start': 12915.63, 'title': 'Python number guessing game', 'summary': 'Demonstrates coding a python number guessing game where a random four-digit number is generated, and the user needs to guess the number, with the program providing feedback on the correct position of the digits and allowing the user to quit by entering 10.', 'duration': 299.529, 'highlights': ['A random four-digit number is generated using the random function to be guessed by the user. The program generates a four digit number using the random function, with a boundary set for the number.', 'The user can input a guess for the four-digit number, and if they want to quit the game, they can enter 10. The user can input a guess for the four-digit number, with the option to quit the game by entering 10.', 'The program provides feedback on the correct position of the digits guessed by the user. For every digit guessed at the correct position, the program prints that one place is correctly guessed, and the user needs to guess all the digits in their correct order.']}, {'end': 13446.232, 'start': 13215.856, 'title': 'Number guessing game', 'summary': "Details the logic and flow of a number guessing game in python, which checks if the user inputs a 4-digit number, provides feedback on the correctness of the guess, and terminates the program if the user inputs '10'. it demonstrates the implementation of a while loop, conditional statements, and the break statement.", 'duration': 230.376, 'highlights': ['The program checks if the user inputs a 4-digit number and provides feedback on the correctness of the guess, in terms of the number of digits guessed right and in their correct positions.', "It includes a mechanism to terminate the program if the user inputs '10', using an outer while loop and an else statement.", "The use of placeholders, like 'percentile D', is highlighted, showing the need to replace them with the actual variable values for clarity and correctness in the output."]}], 'duration': 1859.583, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s11586649.jpg', 'highlights': ['Covers python programming concepts including while loops, reversing integers, extracting digits and handling errors, nested while loop patterns, and a number guessing game in python, providing practical examples and use cases for each concept.', "Demonstrating the importance of correct initialization of variables for while loops The examples highlight the importance of correctly initializing variables such as the counter and sum to ensure accurate execution of while loops, as demonstrated by the need to initialize 'i' as a counter and 'sum' as the sum variable.", 'Explaining the usage and syntax of while loops in Python with examples The chapter provides a clear explanation of the usage and syntax of while loops in Python, demonstrating their application through examples of printing a string, finding the sum of natural numbers, sum of even numbers, and reversing an integer.', 'The process of reversing the integer involves extracting the last digit from the original number and adding it to the front of the reversed number, achieved by using modulus function and multiplication by 10 in Python. The process of reversing the integer involves extracting the last digit from the original number and adding it to the front of the reversed number, achieved by using modulus function and multiplication by 10 in Python.', 'The first program iterates through a while loop to extract digits and reverse them, resulting in the expected output. Program iterates through while loop, extracting and reversing digits', 'A random four-digit number is generated using the random function to be guessed by the user. The program generates a four digit number using the random function, with a boundary set for the number.']}, {'end': 15153.796, 'segs': [{'end': 13509.181, 'src': 'embed', 'start': 13465.98, 'weight': 1, 'content': [{'end': 13473.608, 'text': "And before we jump in, I'd like to please remind you that you can always post something in the notes here on the YouTube videos,", 'start': 13465.98, 'duration': 7.628}, {'end': 13478.213, 'text': 'or you can go to www.simplylearn.com and go under our forums and ask questions there.', 'start': 13473.608, 'duration': 4.605}, {'end': 13481.716, 'text': "We have a team that monitors these and they'll be happy to answer those questions.", 'start': 13478.573, 'duration': 3.143}, {'end': 13483.197, 'text': 'Array in Python.', 'start': 13482.236, 'duration': 0.961}, {'end': 13487.961, 'text': 'Array is a container that holds multiple values of the same type.', 'start': 13483.638, 'duration': 4.323}, {'end': 13492.325, 'text': 'And this is very key is that the array has to be of the same type.', 'start': 13488.502, 'duration': 3.823}, {'end': 13499.692, 'text': "So the syntax for developing your basic array is going to be your variable, whatever you want to call it, myArray or whatever you're working on.", 'start': 13492.926, 'duration': 6.766}, {'end': 13504.496, 'text': 'equals array, your type code, and then the elements in the array.', 'start': 13500.192, 'duration': 4.304}, {'end': 13506.999, 'text': 'This is the main types that they have for arrays.', 'start': 13505.017, 'duration': 1.982}, {'end': 13509.181, 'text': "And you'll see a quick list here.", 'start': 13507.519, 'duration': 1.662}], 'summary': 'Arrays in python hold multiple values of the same type.', 'duration': 43.201, 'max_score': 13465.98, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s13465980.jpg'}, {'end': 14036.186, 'src': 'embed', 'start': 13995.895, 'weight': 0, 'content': [{'end': 13998.255, 'text': 'So it goes through and it finds number 2 in here.', 'start': 13995.895, 'duration': 2.36}, {'end': 14000.196, 'text': 'And this leads into an interesting question.', 'start': 13998.496, 'duration': 1.7}, {'end': 14004.877, 'text': 'What happens if we have two values of the same, or two twos, there we go.', 'start': 14000.556, 'duration': 4.321}, {'end': 14005.858, 'text': "We're going to put in two twos.", 'start': 14004.917, 'duration': 0.941}, {'end': 14010.019, 'text': "So let's go ahead and I'm just going to copy this down here and recreate our array.", 'start': 14006.098, 'duration': 3.921}, {'end': 14013.58, 'text': "And I'm going to add a second two in here, two comma two.", 'start': 14010.359, 'duration': 3.221}, {'end': 14016.101, 'text': "And let's see what happens when we remove the two from there.", 'start': 14013.8, 'duration': 2.301}, {'end': 14017.722, 'text': 'It removes one of the two.', 'start': 14016.521, 'duration': 1.201}, {'end': 14021.783, 'text': 'And the way it works is it removes only the first two in the list.', 'start': 14017.922, 'duration': 3.861}, {'end': 14024.284, 'text': 'So we do the remove value on there.', 'start': 14022.083, 'duration': 2.201}, {'end': 14027.945, 'text': "You'd have to rerun this a number of times to get all the different twos out.", 'start': 14024.504, 'duration': 3.441}, {'end': 14036.186, 'text': "Now earlier, we did print, here's our r, and we can do position, let's do position 3.", 'start': 14028.683, 'duration': 7.503}], 'summary': 'Demonstration of removing specific values from an array and its behavior when encountering duplicates.', 'duration': 40.291, 'max_score': 13995.895, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s13995895.jpg'}, {'end': 14129.105, 'src': 'embed', 'start': 14100.096, 'weight': 4, 'content': [{'end': 14101.637, 'text': 'And it has no values in it.', 'start': 14100.096, 'duration': 1.541}, {'end': 14102.697, 'text': "So that's what this means.", 'start': 14101.817, 'duration': 0.88}, {'end': 14105.778, 'text': 'And if we print it out, just print our array.', 'start': 14102.777, 'duration': 3.001}, {'end': 14109.719, 'text': "We say we just have an array with no, there's no values in there, nothing coming through.", 'start': 14106.198, 'duration': 3.521}, {'end': 14113.98, 'text': "And so what we want to go ahead and do on this array is we're going to create an input.", 'start': 14109.999, 'duration': 3.981}, {'end': 14119.382, 'text': "And we'll set a variable x equal to, it has to be an integer, so it's going to restrict it.", 'start': 14114.36, 'duration': 5.022}, {'end': 14121.079, 'text': "It's going to be an input.", 'start': 14119.898, 'duration': 1.181}, {'end': 14127.123, 'text': "And then from our input, we'll give it, let's see, enter size of array.", 'start': 14121.579, 'duration': 5.544}, {'end': 14128.044, 'text': 'There we go.', 'start': 14127.544, 'duration': 0.5}, {'end': 14129.105, 'text': 'Enter on this.', 'start': 14128.264, 'duration': 0.841}], 'summary': 'The transcript discusses creating an array with no values and setting a variable x as an integer input.', 'duration': 29.009, 'max_score': 14100.096, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s14100096.jpg'}, {'end': 14266.781, 'src': 'embed', 'start': 14234.832, 'weight': 2, 'content': [{'end': 14238.194, 'text': 'So I can use a user input just like this, a real simple setup.', 'start': 14234.832, 'duration': 3.362}, {'end': 14240.375, 'text': 'But it allows me to enter the data into the array.', 'start': 14238.454, 'duration': 1.921}, {'end': 14243.584, 'text': 'We look into what functions in Python are.', 'start': 14240.762, 'duration': 2.822}, {'end': 14246.606, 'text': "So first let's look at the definition of a function.", 'start': 14243.964, 'duration': 2.642}, {'end': 14250.168, 'text': 'A function is a set of code that performs some task.', 'start': 14247.106, 'duration': 3.062}, {'end': 14258.674, 'text': 'So what this essentially means is that you can have a number of instructions which are bundled together in a function that is given a particular name.', 'start': 14250.549, 'duration': 8.125}, {'end': 14266.781, 'text': 'And now using this name you can call this function to execute these instructions from anywhere in the program any number of times.', 'start': 14259.074, 'duration': 7.707}], 'summary': 'Introduction to using user input and defining functions in python.', 'duration': 31.949, 'max_score': 14234.832, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s14234832.jpg'}, {'end': 14313.662, 'src': 'embed', 'start': 14292.383, 'weight': 7, 'content': [{'end': 14301.491, 'text': 'Now this is called the definition of a function, and as we are creating the definition of the function, the keyword that we begin with is def,', 'start': 14292.383, 'duration': 9.108}, {'end': 14303.293, 'text': 'that is the short form of definition.', 'start': 14301.491, 'duration': 1.802}, {'end': 14306.676, 'text': 'And now following def we have the function name.', 'start': 14303.733, 'duration': 2.943}, {'end': 14313.662, 'text': "So here I'm going to have a function called welcome and always you end your function name with parenthesis.", 'start': 14306.996, 'duration': 6.666}], 'summary': "Defining a function named 'welcome' using the keyword 'def'", 'duration': 21.279, 'max_score': 14292.383, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s14292383.jpg'}], 'start': 13446.592, 'title': 'Python arrays, data types, and functions', 'summary': 'Covers python arrays, types, and usage, including characters, unicode, integers, and floating-point numbers. it also explains creating, manipulating arrays, and handling user input. additionally, it covers python functions, parameters, call by reference, mutable and immutable objects, and returning values.', 'chapters': [{'end': 13583.851, 'start': 13446.592, 'title': 'Python arrays and data types', 'summary': 'Covers the basics of arrays in python, including syntax, types, and usage, and explains the different data types such as characters, unicode, integers, and floating-point numbers.', 'duration': 137.259, 'highlights': ['The chapter covers the basics of arrays in Python The transcript introduces the basics of arrays in Python, discussing the syntax and functionality.', 'Explains different data types such as characters, Unicode, integers, and floating-point numbers The transcript provides a detailed explanation of various data types, including characters, Unicode, integers, and floating-point numbers used in arrays.', 'Syntax for developing basic array and its elements The transcript explains the syntax for developing a basic array in Python and the structure of its elements.']}, {'end': 14234.472, 'start': 13584.191, 'title': 'Python array basics', 'summary': 'Covers the basics of creating and manipulating arrays in python using the array module, including importing, creating, printing, accessing, iterating, reversing, adding, and removing elements, as well as handling user input for array creation, in a jupyter notebook environment.', 'duration': 650.281, 'highlights': ['The chapter covers the basics of creating and manipulating arrays in Python using the array module. The entire transcript revolves around introducing and demonstrating the basics of working with arrays in Python using the array module.', 'Handling user input for array creation in a Jupyter Notebook environment. The process of creating an array with user-defined elements using input statements in a Jupyter Notebook environment is explained and demonstrated.', 'Printing, accessing, iterating, reversing, adding, and removing elements in the array. The transcript includes practical demonstrations of various array operations such as printing, accessing, iterating, reversing, adding, and removing elements.']}, {'end': 15153.796, 'start': 14234.832, 'title': 'Python functions and parameters', 'summary': 'Covers the definition of a function in python, how to create and call functions, passing arguments, using keyword arguments, default values, handling variable number of inputs, call by reference, mutable and immutable objects, and returning values from a function.', 'duration': 918.964, 'highlights': ["The chapter covers the definition of a function in Python and how to create and call functions. Explanation of the syntax of a function, creating and calling a basic 'welcome' function to print 'good morning'.", "Demonstration of passing arguments to a function and using keyword arguments. Demonstrating the 'add' function that accepts two numbers as arguments and explaining the use of keyword arguments to make the values independent of the position of the arguments.", 'Illustration of using default values for function parameters and handling variable number of inputs using lists. Example of setting default values for function parameters and demonstrating the capability of accepting variable numbers of values using a list as an argument.', 'Explanation of call by reference and the concept of mutable and immutable objects in Python. Clarification on the concept of call by reference, demonstrating how changes to integers create new objects while changes to lists are reflected back in the original object.', 'Illustration of returning values from a function. Demonstrating how a function can return a value to its call, and using a variable to hold the returned value for further processing.']}], 'duration': 1707.204, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s13446592.jpg', 'highlights': ['The chapter covers the basics of creating and manipulating arrays in Python using the array module.', 'Demonstration of passing arguments to a function and using keyword arguments.', 'Illustration of using default values for function parameters and handling variable number of inputs using lists.', 'The chapter covers the definition of a function in Python and how to create and call functions.', 'Explains different data types such as characters, Unicode, integers, and floating-point numbers.', 'Syntax for developing basic array and its elements.', 'Handling user input for array creation in a Jupyter Notebook environment.', 'Illustration of returning values from a function.', 'Explanation of call by reference and the concept of mutable and immutable objects in Python.', 'Printing, accessing, iterating, reversing, adding, and removing elements in the array.']}, {'end': 17331.634, 'segs': [{'end': 15246.992, 'src': 'embed', 'start': 15222.531, 'weight': 1, 'content': [{'end': 15228.257, 'text': "So you'll have multiple objects in programming often and all these objects have some similar features.", 'start': 15222.531, 'duration': 5.726}, {'end': 15233.962, 'text': 'So a class basically holds all these objects together and gives them a common definition.', 'start': 15228.677, 'duration': 5.285}, {'end': 15236.765, 'text': "Now let's better understand this through an example.", 'start': 15234.242, 'duration': 2.523}, {'end': 15240.327, 'text': 'So here we are considering person as a class.', 'start': 15237.185, 'duration': 3.142}, {'end': 15246.992, 'text': 'Now if person is a class, every person has certain features i.e. name, gender, age.', 'start': 15240.708, 'duration': 6.284}], 'summary': 'A class in programming holds multiple objects and gives them a common definition, such as a person class with features like name, gender, and age.', 'duration': 24.461, 'max_score': 15222.531, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s15222531.jpg'}, {'end': 15770.455, 'src': 'heatmap', 'start': 15405.15, 'weight': 0.72, 'content': [{'end': 15415.356, 'text': "so let's create a constructor which is def init, and once you click on init, the self parameter automatically appears.", 'start': 15405.15, 'duration': 10.206}, {'end': 15423.401, 'text': "self basically refers to the object that you're passing to this constructor or the object that is being created when the constructor is called.", 'start': 15415.356, 'duration': 8.045}, {'end': 15426.523, 'text': "now we'll give value to our three features.", 'start': 15423.401, 'duration': 3.122}, {'end': 15436.44, 'text': 'so our features are name and that will have the value, say Sam, gender, male and age 22..', 'start': 15426.523, 'duration': 9.917}, {'end': 15445.222, 'text': 'Now one thing that we are missing out here is that we need to remember that name, gender, age all these are features of the class.', 'start': 15436.44, 'duration': 8.782}, {'end': 15450.163, 'text': 'That means these features are strictly tied to an object.', 'start': 15445.482, 'duration': 4.681}, {'end': 15455.764, 'text': "That would be the object that's created when this init function is called for that particular time.", 'start': 15450.643, 'duration': 5.121}, {'end': 15459.505, 'text': 'So the reference to that object would be stored in self.', 'start': 15456.204, 'duration': 3.301}, {'end': 15466.559, 'text': "Therefore, we won't just write name equal to sam, but instead self.name equal to sam.", 'start': 15460.405, 'duration': 6.154}, {'end': 15472.25, 'text': 'and in a similar manner self.gender and self.age.', 'start': 15467.887, 'duration': 4.363}, {'end': 15477.573, 'text': 'So we have defined our features of the class person and also given it value.', 'start': 15472.71, 'duration': 4.863}, {'end': 15480.495, 'text': 'Now next thing is we have to define the behaviors.', 'start': 15477.933, 'duration': 2.562}, {'end': 15485.197, 'text': 'So behaviors are implemented through functions or we can say methods.', 'start': 15480.875, 'duration': 4.322}, {'end': 15493.783, 'text': 'So methods are basically functions but the functions which are called through an object or tied to an object are called methods.', 'start': 15485.478, 'duration': 8.305}, {'end': 15496.125, 'text': "So let's define our methods.", 'start': 15494.483, 'duration': 1.642}, {'end': 15499.528, 'text': 'Our first behavior is the talk behavior.', 'start': 15496.885, 'duration': 2.643}, {'end': 15509.817, 'text': "So if the talk method is called, we just want to print out hi, I am and the value of the name attribute of the object that's calling talk.", 'start': 15499.848, 'duration': 9.969}, {'end': 15516.249, 'text': 'Now our next behavior to be implemented is the vote behavior.', 'start': 15512.728, 'duration': 3.521}, {'end': 15521.49, 'text': "So for that we'll create a method vote and here we'll put in a condition.", 'start': 15516.929, 'duration': 4.561}, {'end': 15527.851, 'text': "So if the age of the person is less than 18, the person's not eligible to vote.", 'start': 15521.83, 'duration': 6.021}, {'end': 15534.533, 'text': "So we'll print this out and if the person is above 18, then we'll print out that the person is eligible to vote.", 'start': 15528.111, 'duration': 6.422}, {'end': 15546.753, 'text': 'So if self.age is less than equal to 18, I am not eligible to vote.', 'start': 15535.033, 'duration': 11.72}, {'end': 15550.196, 'text': 'Actually less than 18.', 'start': 15548.195, 'duration': 2.001}, {'end': 15553.039, 'text': 'If the person is 18 they are eligible to vote.', 'start': 15550.196, 'duration': 2.843}, {'end': 15560.547, 'text': 'print. I am eligible to vote.', 'start': 15554.604, 'duration': 5.943}, {'end': 15564.63, 'text': 'so the two behaviors of the class person are implemented through methods.', 'start': 15560.547, 'duration': 4.083}, {'end': 15569.312, 'text': "now. now all that's left for us to do is to create the actual object.", 'start': 15564.63, 'duration': 4.682}, {'end': 15571.854, 'text': 'so how do you create the object?', 'start': 15569.312, 'duration': 2.542}, {'end': 15579.138, 'text': "if my object name is OBJ, I'll write OBJ equal to and then put in the type of the object.", 'start': 15571.854, 'duration': 7.284}, {'end': 15582.14, 'text': 'And the type of the object is of course the class.', 'start': 15579.398, 'duration': 2.742}, {'end': 15584.601, 'text': "Now here's something that you need to understand.", 'start': 15582.62, 'duration': 1.981}, {'end': 15588.324, 'text': 'Everything that you create in Python is actually an object.', 'start': 15585.082, 'duration': 3.242}, {'end': 15591.866, 'text': "So I'll explain this a little more in my console.", 'start': 15589.165, 'duration': 2.701}, {'end': 15596.169, 'text': 'So if I have a variable say a and I give this variable the value 100.', 'start': 15592.287, 'duration': 3.882}, {'end': 15598.431, 'text': 'We know that 100 is an integer type value.', 'start': 15596.169, 'duration': 2.262}, {'end': 15601.673, 'text': 'Therefore that makes a an integer type variable.', 'start': 15598.711, 'duration': 2.962}, {'end': 15607.638, 'text': 'But then if I check the type of this variable, it shows class int.', 'start': 15602.133, 'duration': 5.505}, {'end': 15614.424, 'text': 'that means the type of a is the integer class which makes a an object.', 'start': 15607.638, 'duration': 6.786}, {'end': 15619.469, 'text': 'in the similar manner, if i have another value to a, say, simply learn.', 'start': 15614.424, 'duration': 5.045}, {'end': 15627.66, 'text': "And now, if I check the type of A, we'll see that A is now an object of class string.", 'start': 15620.911, 'duration': 6.749}, {'end': 15629.963, 'text': 'str is basically the short form of string.', 'start': 15628.06, 'duration': 1.903}, {'end': 15633.968, 'text': 'Therefore everything in Python is an object of some class.', 'start': 15630.243, 'duration': 3.725}, {'end': 15643.037, 'text': 'And that is how our object here, obj, is an object of the type person, where person is our class.', 'start': 15634.389, 'duration': 8.648}, {'end': 15645.439, 'text': 'so now that we have created an object,', 'start': 15643.037, 'duration': 2.402}, {'end': 15652.843, 'text': 'during this creation of the object our constructor will be called and the features of this object will be given some value.', 'start': 15645.439, 'duration': 7.404}, {'end': 15656.486, 'text': 'now we can use this object to call its behaviors.', 'start': 15652.843, 'duration': 3.643}, {'end': 15662.309, 'text': 'so this can be done either in this manner so you put in person, which is the type of our object,', 'start': 15656.486, 'duration': 5.823}, {'end': 15670.56, 'text': 'dot the method and within the bracket as a parameter you can pass the object in the similar manner.', 'start': 15662.309, 'duration': 8.251}, {'end': 15676.268, 'text': "we'll also call a behavior vote and again pass obj within it.", 'start': 15670.56, 'duration': 5.708}, {'end': 15678.071, 'text': "now let's run this code.", 'start': 15676.268, 'duration': 1.803}, {'end': 15685.441, 'text': 'just pull up my console here, run the program and, as you can see here.', 'start': 15678.071, 'duration': 7.37}, {'end': 15692.406, 'text': 'so we created an object and the object got its values as mentioned in the constructor, that is in it,', 'start': 15685.441, 'duration': 6.965}, {'end': 15701.232, 'text': 'and then we call the talk behavior or the talk method using our object obj, and this printed our first line, which is hi, i am sam,', 'start': 15692.406, 'duration': 8.826}, {'end': 15706.696, 'text': 'and then we call the vote behavior and in the vote behavior the age of our object was checked.', 'start': 15701.232, 'duration': 5.464}, {'end': 15712.28, 'text': "since our object's age was greater than 18, it says i'm eligible to vote.", 'start': 15706.696, 'duration': 5.584}, {'end': 15718.303, 'text': 'Now these two lines where we are calling our methods, can be done in a different way.', 'start': 15712.88, 'duration': 5.423}, {'end': 15724.526, 'text': 'Instead of calling it with the type of our object and then passing our object we can directly call it with our object.', 'start': 15718.923, 'duration': 5.603}, {'end': 15734.632, 'text': 'So we can have it in this way obj.talkOf and over here obj dot vote off.', 'start': 15724.986, 'duration': 9.646}, {'end': 15741.96, 'text': 'so we must remember that in this particular case, where we are creating classes and objects and have this kind of a structure,', 'start': 15734.632, 'duration': 7.328}, {'end': 15749.609, 'text': 'all these methods are actually tied to the object, which is why we cannot just say talk off, we need an object to call it,', 'start': 15741.96, 'duration': 7.649}, {'end': 15751.992, 'text': 'or at least pass an object to this method.', 'start': 15749.609, 'duration': 2.383}, {'end': 15753.694, 'text': "Let's run the code now.", 'start': 15752.572, 'duration': 1.122}, {'end': 15756.878, 'text': "So it's the exact same result, works just fine.", 'start': 15754.074, 'duration': 2.804}, {'end': 15765.209, 'text': 'Now in this case we just created one object and the values for this object were predetermined and just put in our constructor.', 'start': 15757.218, 'duration': 7.991}, {'end': 15770.455, 'text': 'Now what if we want to create two separate objects and the values for these objects vary.', 'start': 15765.569, 'duration': 4.886}], 'summary': 'Python class and object creation, defining features and behaviors, creating and using objects', 'duration': 365.305, 'max_score': 15405.15, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s15405150.jpg'}, {'end': 15961.485, 'src': 'embed', 'start': 15906.721, 'weight': 0, 'content': [{'end': 15912.105, 'text': 'So now these values will go into these variables and will be assigned to these features.', 'start': 15906.721, 'duration': 5.384}, {'end': 15917.69, 'text': 'So for obj1, if I say obj1.name, the name would be Sam.', 'start': 15912.766, 'duration': 4.924}, {'end': 15921.433, 'text': 'If I say obj2.name, it would result in Jessie.', 'start': 15917.99, 'duration': 3.443}, {'end': 15922.554, 'text': "We'll see that now.", 'start': 15921.713, 'duration': 0.841}, {'end': 15924.215, 'text': 'Let me just print that out.', 'start': 15923.054, 'duration': 1.161}, {'end': 15930, 'text': 'obj1.name and obj2.name.', 'start': 15924.896, 'duration': 5.104}, {'end': 15934.744, 'text': 'so, as you see, although our feature is the same, we are printing the feature name.', 'start': 15930, 'duration': 4.744}, {'end': 15939.969, 'text': 'in both the cases, the object to which this feature is tied is different.', 'start': 15934.744, 'duration': 5.225}, {'end': 15947.035, 'text': "so the first time it's printing name related to object one and the second time it's printing the name related to object two.", 'start': 15939.969, 'duration': 7.066}, {'end': 15948.996, 'text': 'now, this is not what we want to show here.', 'start': 15947.035, 'duration': 1.961}, {'end': 15961.485, 'text': "here what we want to do is, after creating our two objects, we'll call the methods using these objects, So obj1.talkOf and obj1.voteOf.", 'start': 15948.996, 'duration': 12.489}], 'summary': 'Demonstrating variable assignment and object method calls with different objects.', 'duration': 54.764, 'max_score': 15906.721, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s15906721.jpg'}], 'start': 15153.796, 'title': 'Python objects, classes, and inheritance', 'summary': "Discusses python's object-oriented programming emphasizing the concept of objects and classes, demonstrates defining and creating objects, usage of pycharm for classes, and explains inheritance and polymorphism with practical examples.", 'chapters': [{'end': 15222.111, 'start': 15153.796, 'title': 'Python objects and classes', 'summary': 'Discusses the concept of objects and classes in python, emphasizing that python is an object-oriented programming language focused on the presence of objects and their blueprint, known as classes.', 'duration': 68.315, 'highlights': ['Python is an object-oriented programming language, completely focused around the presence of an object.', 'Every instance in Python is an object, including tangible entities like tables, chairs, and mobile phones.', 'A class in Python serves as a blueprint for similar objects.']}, {'end': 15571.854, 'start': 15222.531, 'title': 'Understanding object and class in programming', 'summary': 'Explains the concept of classes and objects in programming, using the example of a person class with features like name, gender, and age, and behaviors like talk and vote, and demonstrates how to define and create objects of the class in python.', 'duration': 349.323, 'highlights': ['The chapter explains the concept of classes and objects in programming, using the example of a person class with features like name, gender, and age, and behaviors like talk and vote, and demonstrates how to define and create objects of the class in Python.', 'The person class defines the features name, age, and gender, and uses a constructor to give them values like name: Sam, gender: male, and age: 22.', 'The behaviors of the class person, namely talk and vote, are implemented through methods, with the vote method checking the age to determine if the person is eligible to vote.']}, {'end': 16179.785, 'start': 15571.854, 'title': 'Python objects and classes', 'summary': 'Explains the concept of objects and classes in python, emphasizing that everything in python is an object, demonstrating the creation of objects and calling their behaviors, and illustrating how to create and differentiate between multiple objects with unique values and calling their methods, using the example of a person class with unique features and behaviors.', 'duration': 607.931, 'highlights': ['The chapter emphasizes that everything in Python is an object, including variables and values, showcasing examples with integer and string type variables.', 'It explains the creation of objects and the calling of their behaviors, demonstrating how to call methods using the object type and directly with the object, providing a clear understanding of the tie between methods and objects.', 'It illustrates the process of creating multiple objects with unique values for each object, showcasing the use of the init method to accept and assign values, and highlights the ability to differentiate between objects and access their unique features.', 'The chapter provides a clear explanation of object-oriented programming, highlighting the concept of objects having attributes (data) and behaviors (methods) using the example of cars as objects with specific attributes and behaviors.']}, {'end': 16781.295, 'start': 16180.245, 'title': 'Using pycharm for python classes', 'summary': "Introduces the usage of pycharm, a popular python editor, for creating classes and instances in python, demonstrating the creation of a class, instantiation of objects, and usage of methods like getspeed and setspeed, with a focus on encapsulation and the 'self' keyword.", 'duration': 601.05, 'highlights': ['PyCharm is introduced for Python classes The chapter introduces the usage of PyCharm, a popular Python editor, for creating classes and instances in Python.', "Creating a class and instance in Python Demonstrates the creation of a class 'car' and instantiation of objects 'BMW' and 'Ford' in Python.", 'Usage of getSpeed and setSpeed methods Demonstrates the usage of methods like getSpeed and setSpeed for retrieving and altering the speed attribute of the car instances.', "Focus on encapsulation and 'self' keyword Emphasizes the concept of encapsulation and the usage of the 'self' keyword for referring to the instance of the class."]}, {'end': 17331.634, 'start': 16781.295, 'title': 'Inheritance and polymorphism in python', 'summary': 'Introduces the concept of inheritance and polymorphism in python, demonstrating how child classes inherit features from parent classes and can modify them, and how polymorphism allows the same function to be used in multiple ways, with examples of a sedan and an suv inheriting from a car class and demonstrating different acceleration speeds.', 'duration': 550.339, 'highlights': ['The chapter introduces the concept of inheritance in Python, where a new class can inherit features from another class, similar to using a template in word processing, with examples of creating child classes sedan and SUV inheriting from the car class. Concept of inheritance, creation of child classes sedan and SUV, demonstration of inheritance mechanism.', 'The chapter also demonstrates how child classes can modify the features inherited from parent classes, with examples of modifying the acceleration speeds for the sedan and SUV classes in Python. Demonstration of modifying inherited features, examples of modifying acceleration speeds in sedan and SUV classes.', 'Additionally, the chapter explains the concept of encapsulation, which prevents direct access to data and changes to the parent class when creating a child class in Python. Explanation of encapsulation, prevention of direct access to parent class data, demonstration of encapsulation in Python.', 'Furthermore, the chapter discusses polymorphism in Python, where the same function can be used in multiple ways, with examples of a sedan and an SUV demonstrating different acceleration speeds using the same function. Explanation of polymorphism, demonstration of using the same function in different ways, examples of sedan and SUV demonstrating polymorphism.']}], 'duration': 2177.838, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s15153796.jpg', 'highlights': ['Python is an object-oriented programming language, completely focused around the presence of an object.', 'The chapter emphasizes that everything in Python is an object, including variables and values, showcasing examples with integer and string type variables.', 'The chapter provides a clear explanation of object-oriented programming, highlighting the concept of objects having attributes (data) and behaviors (methods) using the example of cars as objects with specific attributes and behaviors.', 'The chapter introduces the concept of inheritance in Python, where a new class can inherit features from another class, similar to using a template in word processing, with examples of creating child classes sedan and SUV inheriting from the car class.', 'The chapter also demonstrates how child classes can modify the features inherited from parent classes, with examples of modifying the acceleration speeds for the sedan and SUV classes in Python.']}, {'end': 18343.528, 'segs': [{'end': 17531.564, 'src': 'embed', 'start': 17486.229, 'weight': 0, 'content': [{'end': 17496.09, 'text': "So you say target So we set targets value equal to show, our function show and now outside here we'll just print this is the parent thread.", 'start': 17486.229, 'duration': 9.861}, {'end': 17499.556, 'text': "So I'll just explain in general how a thread works.", 'start': 17497.112, 'duration': 2.444}, {'end': 17504.624, 'text': "Now the minute you write a program and you start running it, there's a thread created.", 'start': 17499.916, 'duration': 4.708}, {'end': 17508.147, 'text': 'Now this default thread that is created is called the parent thread.', 'start': 17504.884, 'duration': 3.263}, {'end': 17515.292, 'text': 'So the execution of your program is performed on the parent thread unless you explicitly create a separate thread.', 'start': 17508.567, 'duration': 6.725}, {'end': 17523.238, 'text': 'So if we had not created this thread here, our entire program would be run on the main thread like every other program is.', 'start': 17515.572, 'duration': 7.666}, {'end': 17531.564, 'text': 'But now that we created a thread here, this thread, that is t, will run only this show of function,', 'start': 17523.558, 'duration': 8.006}], 'summary': 'Parent thread executes program unless separate thread is created.', 'duration': 45.335, 'max_score': 17486.229, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s17486229.jpg'}, {'end': 17926.125, 'src': 'heatmap', 'start': 17560.896, 'weight': 0.722, 'content': [{'end': 17569.759, 'text': 'So the start of method belongs to the thread class and as you have probably noticed already our thread here t is an object of the thread class.', 'start': 17560.896, 'duration': 8.863}, {'end': 17577.42, 'text': 'So once you say t.start the target function of this particular thread is run which in our case is show.', 'start': 17570.219, 'duration': 7.201}, {'end': 17579.041, 'text': "Now I'll run this program.", 'start': 17577.82, 'duration': 1.221}, {'end': 17580.321, 'text': 'Pull this up here.', 'start': 17579.381, 'duration': 0.94}, {'end': 17586.113, 'text': 'and as you can see first we have a child thread executed and then we have the parent thread executed.', 'start': 17580.748, 'duration': 5.365}, {'end': 17591.198, 'text': "Now let's look at the second way that you can create a thread which is by importing the thread class.", 'start': 17586.434, 'duration': 4.764}, {'end': 17598.826, 'text': "So you still need your threading package and I'll create a class myThread which is a user defined class.", 'start': 17591.459, 'duration': 7.367}, {'end': 17605.332, 'text': "So I'll be defining this class and this class will now be a sub child of the Thread class.", 'start': 17599.086, 'duration': 6.246}, {'end': 17607.793, 'text': 'Now the Thread class already exists.', 'start': 17605.592, 'duration': 2.201}, {'end': 17613.677, 'text': "It's a predefined class and we're extending this Thread class into our class MyThreadClass.", 'start': 17608.133, 'duration': 5.544}, {'end': 17619.12, 'text': 'What this does is all the properties of the Thread class is now present within our MyThread class.', 'start': 17613.877, 'duration': 5.243}, {'end': 17628.185, 'text': "Now, within the MyThread class, I'll be creating a function, def run, within which I'll just print this is a child class, say five times,", 'start': 17619.4, 'duration': 8.785}, {'end': 17631.4, 'text': 'using the for loop and outside.', 'start': 17628.185, 'duration': 3.215}, {'end': 17633.181, 'text': "here I'll create my thread.", 'start': 17631.4, 'duration': 1.781}, {'end': 17642.084, 'text': 'So now that our class myThread has extended the thread class we can create an object for myThread and that by itself would be a thread.', 'start': 17633.381, 'duration': 8.703}, {'end': 17647.005, 'text': 'So t is my object of myThread which would also be the thread.', 'start': 17642.384, 'duration': 4.621}, {'end': 17650.266, 'text': "Now if you notice here I'm not passing any target.", 'start': 17647.265, 'duration': 3.001}, {'end': 17655.948, 'text': "So this is because when you don't pass any target by default your thread will call the run function.", 'start': 17650.506, 'duration': 5.442}, {'end': 17658.529, 'text': "So it'll come here and it'll execute this function.", 'start': 17656.108, 'duration': 2.421}, {'end': 17662.631, 'text': 'So the thread class has a blueprint of the run function,', 'start': 17658.849, 'duration': 3.782}, {'end': 17668.734, 'text': 'and every thread that is created as an object of the thread class is designed to call this run function by default.', 'start': 17662.631, 'duration': 6.103}, {'end': 17675.118, 'text': 'So what we do here in our myThread class is we redefine this run function for our purpose.', 'start': 17668.914, 'duration': 6.204}, {'end': 17682.842, 'text': 'Now, of course, you need to start your thread and outside here, which is the path that will be executed by my main thread.', 'start': 17675.718, 'duration': 7.124}, {'end': 17688.976, 'text': "I'll just print out this is the main thread and let's run this code.", 'start': 17682.842, 'duration': 6.134}, {'end': 17691.478, 'text': "so we'll just add the new lines.", 'start': 17688.976, 'duration': 2.502}, {'end': 17698.263, 'text': "so here there's child class, main thread, main thread, main thread, so on, and then we are back to child class.", 'start': 17691.478, 'duration': 6.785}, {'end': 17703.466, 'text': "so if you're wondering why this kind of a mix-up is happening, I'll explain that to you now.", 'start': 17698.263, 'duration': 5.203}, {'end': 17709.911, 'text': 'our entire program was initially planned to be run on the main thread, but we created a child thread here, which is t,', 'start': 17703.466, 'duration': 6.445}, {'end': 17715.855, 'text': 'and made the child thread take care of the execution of this def run of this function run.', 'start': 17709.911, 'duration': 5.944}, {'end': 17726.402, 'text': 'Now, while our thread, our child thread T, was executing this for loop and between the gap of printing this out and moving to the next iteration,', 'start': 17716.095, 'duration': 10.307}, {'end': 17728.844, 'text': 'our main thread was completely idle.', 'start': 17726.402, 'duration': 2.442}, {'end': 17733.227, 'text': 'So the main thread took up this time to start printing out this for loop.', 'start': 17729.064, 'duration': 4.163}, {'end': 17738.209, 'text': 'And that is why you have this mixup of child class and the main thread printouts.', 'start': 17733.527, 'duration': 4.682}, {'end': 17742.43, 'text': "And now we'll have a look at the third way you can create a thread.", 'start': 17738.809, 'duration': 3.621}, {'end': 17744.831, 'text': "This time we'll not be extending the thread class.", 'start': 17742.65, 'duration': 2.181}, {'end': 17749.873, 'text': "So I'll have a class, say demo, within which I'll have a function show.", 'start': 17745.291, 'duration': 4.582}, {'end': 17754.735, 'text': "And within this function, I'll print out this is the child thread five times using the for loop.", 'start': 17750.193, 'duration': 4.542}, {'end': 17761.861, 'text': "Now outside here, I'll create an object of my class demo.", 'start': 17757.819, 'duration': 4.042}, {'end': 17766.424, 'text': "And now I'll create a thread which is basically an object of the thread class.", 'start': 17762.562, 'duration': 3.862}, {'end': 17769.866, 'text': "And to this, I'll pass the target just like we did previously.", 'start': 17766.724, 'duration': 3.142}, {'end': 17775.669, 'text': "But this time because a function exists within a class, we'll refer to the function with an object.", 'start': 17770.086, 'duration': 5.583}, {'end': 17777.29, 'text': 'So we have a reference now.', 'start': 17775.95, 'duration': 1.34}, {'end': 17780.892, 'text': "And once that's done, back to starting our thread.", 'start': 17777.591, 'duration': 3.301}, {'end': 17783.134, 'text': "And outside here, I'll print out.", 'start': 17781.193, 'duration': 1.941}, {'end': 17784.835, 'text': 'This is the parent thread.', 'start': 17783.374, 'duration': 1.461}, {'end': 17786.996, 'text': 'Five times using the for loop.', 'start': 17785.275, 'duration': 1.721}, {'end': 17789.603, 'text': 'Let me run this code now.', 'start': 17788.482, 'duration': 1.121}, {'end': 17791.204, 'text': 'So you can see the output here.', 'start': 17789.903, 'duration': 1.301}, {'end': 17796.148, 'text': 'We have this is a child thread printed 5 times and then 5 times of the parent thread.', 'start': 17791.284, 'duration': 4.864}, {'end': 17798.27, 'text': 'Now Python can be quite deceiving.', 'start': 17796.528, 'duration': 1.742}, {'end': 17805.315, 'text': 'So now that we looked at what thread is and how threading works in Python exactly, we can move on to multi-threading.', 'start': 17798.53, 'duration': 6.785}, {'end': 17814.281, 'text': 'So multi-threading is a model where you have multiple threads within a process and all these threads can execute independent of one another,', 'start': 17805.576, 'duration': 8.705}, {'end': 17818.383, 'text': 'but they are also sharing all the resources of the process.', 'start': 17814.281, 'duration': 4.102}, {'end': 17825.827, 'text': 'So by the resources of the process we could mean the various data that the process holds, the files or the stacks and so on.', 'start': 17818.603, 'duration': 7.224}, {'end': 17832.15, 'text': 'Now, all the threads that are taking care of the execution of this process will share these resources,', 'start': 17826.027, 'duration': 6.123}, {'end': 17835.892, 'text': "but they will be independent of each other's execution too.", 'start': 17832.15, 'duration': 3.742}, {'end': 17838.896, 'text': "So let's look at multi-threading through an example.", 'start': 17836.232, 'duration': 2.664}, {'end': 17844.483, 'text': "Here we'll write a program where we want to print out in the first line a number, say 1,", 'start': 17839.136, 'duration': 5.347}, {'end': 17847.547, 'text': 'followed by the double of the number and then the square of the number.', 'start': 17844.483, 'duration': 3.064}, {'end': 17852.734, 'text': 'Now we want these three statements to be printed for every number from 1 to 5.', 'start': 17847.768, 'duration': 4.966}, {'end': 17858.255, 'text': "So what we'll be first doing is we'll have a class, and within this class we'll have three functions,", 'start': 17852.734, 'duration': 5.521}, {'end': 17862.816, 'text': 'where each function is responsible for one of the following, which is printing the number,', 'start': 17858.255, 'duration': 4.561}, {'end': 17865.697, 'text': 'printing the double of the number and printing the square of the number.', 'start': 17862.816, 'duration': 2.881}, {'end': 17867.597, 'text': "So let's begin writing our code.", 'start': 17866.057, 'duration': 1.54}, {'end': 17872.478, 'text': "Since we'll be using threads here, the first thing we do is we'll import our thread package.", 'start': 17867.817, 'duration': 4.661}, {'end': 17876.359, 'text': 'Name my class demo.', 'start': 17875.279, 'duration': 1.08}, {'end': 17879.684, 'text': "And within this I'll start defining my functions.", 'start': 17877.043, 'duration': 2.641}, {'end': 17884.567, 'text': 'So my first function is def num and this function will just be printing out the number.', 'start': 17879.985, 'duration': 4.582}, {'end': 17889.99, 'text': 'So we want all the numbers from 1 up till 5.', 'start': 17885.607, 'duration': 4.383}, {'end': 17891.991, 'text': "So that's all our first function is.", 'start': 17889.99, 'duration': 2.001}, {'end': 17895.212, 'text': 'Now our second function which is for printing out the double of the number.', 'start': 17892.051, 'duration': 3.161}, {'end': 17900.175, 'text': '2 into i.', 'start': 17895.232, 'duration': 4.943}, {'end': 17904.257, 'text': "And finally our third function where we'll be printing out the square of the number.", 'start': 17900.175, 'duration': 4.082}, {'end': 17910.32, 'text': 'So now we have the three functions.', 'start': 17908.399, 'duration': 1.921}, {'end': 17912.02, 'text': "Now here's our challenge.", 'start': 17910.6, 'duration': 1.42}, {'end': 17916.502, 'text': 'We want one iteration of every function to happen one by one.', 'start': 17912.34, 'duration': 4.162}, {'end': 17926.125, 'text': 'So what I mean is for i in range one to six in our function defnum, we want the number is one to be printed and then immediately after that,', 'start': 17916.762, 'duration': 9.363}], 'summary': 'The transcript explains creating and executing threads in python, including multi-threading and an example program for printing numbers, their doubles, and squares using threads.', 'duration': 365.229, 'max_score': 17560.896, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s17560896.jpg'}], 'start': 17332.014, 'title': 'Python threading basics', 'summary': 'Introduces threading in python, explaining processes and threads relationship, the need for utilizing multiple cores, thread creation and management in python, and multi-threading example with a program employing three separate threads.', 'chapters': [{'end': 17449.408, 'start': 17332.014, 'title': 'Python threading basics', 'summary': 'Introduces the concept of threading in python, explaining the relationship between processes and threads, and the need for utilizing multiple cores for efficient program execution.', 'duration': 117.394, 'highlights': ['Threading in Python allows for the utilization of multiple cores in a system, leading to faster and more efficient program execution.', 'A thread is a sequence of instructions in a program that can be executed independently of the remaining program, enabling the parallel execution of tasks.', 'A process is an executable instance of a computer program, with anything running on a computer considered as a process.']}, {'end': 17825.827, 'start': 17449.428, 'title': 'Thread creation in python', 'summary': 'Explores three ways of creating and managing threads in python, including the use of the threading package, extending the thread class, and creating threads without extending the thread class, emphasizing the concept of threads and multi-threading in python.', 'duration': 376.399, 'highlights': ['The chapter explores three ways of creating and managing threads in Python The transcript discusses three methods of creating threads in Python, showcasing the versatility of thread management in the language.', 'Multi-threading is a model where you have multiple threads within a process and all these threads can execute independent of one another The concept of multi-threading is explained, emphasizing the independence and resource-sharing nature of multiple threads within a process.', "The minute you write a program and you start running it, there's a thread created The default creation of a thread when a program is run is highlighted, providing an insight into the initial thread execution in Python programs."]}, {'end': 18003.381, 'start': 17826.027, 'title': 'Multi-threading example in python', 'summary': 'Introduces multi-threading through a python program that uses threads to print numbers, their doubles, and squares from 1 to 5, employing three separate threads to handle the execution of each function.', 'duration': 177.354, 'highlights': ['The program uses threads to print numbers, their doubles, and squares from 1 to 5. The Python program is designed to print a number, its double, and its square for each number from 1 to 5, demonstrating multi-threading.', 'Three separate threads are employed to handle the execution of each function. The program creates three child threads, each responsible for executing one of the three functions: printing the number, printing the double, and printing the square of the number.', 'The main thread is responsible for running only a specific part of the program, as it shares resources with the child threads. Due to the creation of child threads, the main thread is now responsible for running only a limited part of the program, showcasing the independent execution of threads while sharing resources.']}, {'end': 18343.528, 'start': 18003.641, 'title': 'Python threading basics', 'summary': 'Explores the basics of python threading, including the challenges faced in executing multiple functions concurrently, and how to control threads using the time.sleep function, ultimately achieving the desired output. additionally, it introduces the concept of scripting in python and demonstrates the usage of the os library to extract the current working directory and retrieve the path of a file.', 'duration': 339.887, 'highlights': ['The chapter explores the challenges faced in executing multiple functions concurrently and how to control threads using the time.sleep function, ultimately achieving the desired output. The discussion highlights the challenges of executing multiple functions concurrently and the solution of controlling threads using the time.sleep function to achieve the desired output.', 'Introduction of the concept of scripting in Python and demonstration of the usage of the OS library to extract the current working directory and retrieve the path of a file. The chapter introduces the concept of scripting in Python and demonstrates the usage of the OS library to extract the current working directory and retrieve the path of a file.']}], 'duration': 1011.514, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s17332014.jpg', 'highlights': ['Threading in Python allows for the utilization of multiple cores in a system, leading to faster and more efficient program execution.', 'The chapter explores three ways of creating and managing threads in Python, showcasing the versatility of thread management in the language.', 'The program uses threads to print numbers, their doubles, and squares from 1 to 5.', 'The chapter explores the challenges faced in executing multiple functions concurrently and how to control threads using the time.sleep function, ultimately achieving the desired output.']}, {'end': 19605.848, 'segs': [{'end': 18767.178, 'src': 'embed', 'start': 18741.158, 'weight': 1, 'content': [{'end': 18747.065, 'text': 'because the entire purpose of our program is to build a file which we do not need to do if it already exists.', 'start': 18741.158, 'duration': 5.907}, {'end': 18751.889, 'text': 'now, in here you say open dest, comma w.', 'start': 18747.065, 'duration': 4.824}, {'end': 18760.734, 'text': 'so, guys, this function actually returns true, only if this file is present and this particular path is actually a file.', 'start': 18751.889, 'duration': 8.845}, {'end': 18767.178, 'text': "so suppose this destination whatever passed to dest is present, but it's a folder, not a file.", 'start': 18760.734, 'duration': 6.444}], 'summary': "The program is designed to build a file only if it doesn't exist, indicated by 'open dest, comma w'. the function returns true if the file exists and the path is a file, not a folder.", 'duration': 26.02, 'max_score': 18741.158, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s18741158.jpg'}, {'end': 18853.462, 'src': 'embed', 'start': 18822.365, 'weight': 0, 'content': [{'end': 18823.287, 'text': 'we need to run our code.', 'start': 18822.365, 'duration': 0.922}, {'end': 18825.85, 'text': "Well we don't need an input from the user.", 'start': 18823.607, 'duration': 2.243}, {'end': 18827.151, 'text': 'So we say print.', 'start': 18825.89, 'duration': 1.261}, {'end': 18828.973, 'text': 'So we print file created.', 'start': 18827.612, 'duration': 1.361}, {'end': 18830.255, 'text': "Now let's run our code.", 'start': 18829.233, 'duration': 1.022}, {'end': 18832.978, 'text': "According to the statement here there's no error.", 'start': 18830.775, 'duration': 2.203}, {'end': 18837.243, 'text': 'Our program executed completely and created a file.', 'start': 18833.158, 'duration': 4.085}, {'end': 18839.786, 'text': "So now let's check if this actually worked.", 'start': 18837.523, 'duration': 2.263}, {'end': 18845.753, 'text': 'So I go to my desktop, this is the folder where sample should have been created and yes it is.', 'start': 18840.166, 'duration': 5.587}, {'end': 18849.177, 'text': 'We will open the file and as you can see the content too matches.', 'start': 18845.973, 'duration': 3.204}, {'end': 18853.462, 'text': 'So we were successfully able to automate the creation of a file.', 'start': 18849.397, 'duration': 4.065}], 'summary': 'Code executed successfully, automating file creation on desktop.', 'duration': 31.097, 'max_score': 18822.365, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s18822365.jpg'}, {'end': 19081.329, 'src': 'embed', 'start': 19056.492, 'weight': 8, 'content': [{'end': 19063.418, 'text': "so let's run this program now, And as you see, 10, 20, 30, 40, each of them have been printed out in a separate line.", 'start': 19056.492, 'duration': 6.926}, {'end': 19068.921, 'text': 'And the beauty with this function is you can change the number of values that you print.', 'start': 19063.738, 'duration': 5.183}, {'end': 19073.344, 'text': 'In fact, you can even give in different types of argument.', 'start': 19069.422, 'duration': 3.922}, {'end': 19077.847, 'text': 'So I have all integers here followed by a string and it all works.', 'start': 19073.664, 'duration': 4.183}, {'end': 19081.329, 'text': 'So that is where you use the variable args.', 'start': 19078.147, 'duration': 3.182}], 'summary': 'A program prints 10, 20, 30, 40 in separate lines using variable args.', 'duration': 24.837, 'max_score': 19056.492, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s19056492.jpg'}, {'end': 19280.978, 'src': 'embed', 'start': 19249.59, 'weight': 4, 'content': [{'end': 19254.214, 'text': 'so what we have in result would be 10 plus 1, which is 11.', 'start': 19249.59, 'duration': 4.624}, {'end': 19255.635, 'text': "let's now run this code.", 'start': 19254.214, 'duration': 1.421}, {'end': 19259.158, 'text': "so, as you see here, 10 plus 1, 11 is what's passed.", 'start': 19255.635, 'duration': 3.523}, {'end': 19261.42, 'text': 'So that is how nested functions work.', 'start': 19259.258, 'duration': 2.162}, {'end': 19264.142, 'text': 'Now, why are nested functions important?', 'start': 19261.62, 'duration': 2.522}, {'end': 19273.171, 'text': 'They are important to understand the concept of how functions can also be passed as an object in Python and why we would do so.', 'start': 19264.283, 'duration': 8.888}, {'end': 19280.978, 'text': "So I'll delete this entire code, create a function func1 once again and in here I'll print this is first function.", 'start': 19273.351, 'duration': 7.627}], 'summary': 'Nested functions result in 10 plus 1 equalling 11, showcasing their importance in python.', 'duration': 31.388, 'max_score': 19249.59, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s19249590.jpg'}, {'end': 19337.15, 'src': 'embed', 'start': 19308.804, 'weight': 2, 'content': [{'end': 19315.21, 'text': 'you want to make a direct call to say function a and through function a you want to call a function b or c.', 'start': 19308.804, 'duration': 6.406}, {'end': 19324.76, 'text': 'so for that, and as an argument to func1, you passed another function name as an object.', 'start': 19315.21, 'duration': 9.55}, {'end': 19326.821, 'text': 'so I pass outer func.', 'start': 19324.76, 'duration': 2.061}, {'end': 19334.247, 'text': "so as you see here, guys, outer func is essentially a function, but I'm passing this function as an object to func1.", 'start': 19326.821, 'duration': 7.426}, {'end': 19337.15, 'text': 'So func1 will receive this function.', 'start': 19334.727, 'duration': 2.423}], 'summary': 'Pass a function as an object to func1 for direct call to function a and further call to function b or c.', 'duration': 28.346, 'max_score': 19308.804, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s19308804.jpg'}, {'end': 19584.581, 'src': 'embed', 'start': 19557.41, 'weight': 7, 'content': [{'end': 19560.652, 'text': 'Now suppose I want to call this outer function alone.', 'start': 19557.41, 'duration': 3.242}, {'end': 19566.255, 'text': 'Now the question is is this the only way of calling the outer function within the func1??', 'start': 19560.772, 'duration': 5.483}, {'end': 19574.778, 'text': "What I mean is func1 is basically your wrapper function right now, and every function that's called through func1 comes inside this.", 'start': 19566.315, 'duration': 8.463}, {'end': 19580.499, 'text': 'so i want to call all the functions in the same manner, in the same serial as before.', 'start': 19574.778, 'duration': 5.721}, {'end': 19583.02, 'text': 'but is there an easy way to do this?', 'start': 19580.499, 'duration': 2.521}, {'end': 19584.581, 'text': 'well, yes, there is.', 'start': 19583.02, 'duration': 1.561}], 'summary': 'Exploring the efficient way to call functions within a wrapper function.', 'duration': 27.171, 'max_score': 19557.41, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s19557410.jpg'}], 'start': 18343.768, 'title': 'Python automation and modules', 'summary': 'Covers using os module to find file paths, introduction to time module and smtp, automating file creation and email sending, and python functions and classes including nested functions, class creation, and decorators.', 'chapters': [{'end': 18389.585, 'start': 18343.768, 'title': 'Finding file path with os module', 'summary': "Discusses using the os module in python to find the path of a file, demonstrating the retrieval of the current working directory and the path of a specific file, such as 'sample.txt', showcasing the functionality of the os module.", 'duration': 45.817, 'highlights': ["The chapter demonstrates the usage of the OS module in Python to find the path of a specific file, 'sample.txt', and retrieve the current working directory.", "The transcript provides a practical example of using the OS module to locate a file, emphasizing the functionality of the 'file path' and 'current working directory' functions."]}, {'end': 18693.752, 'start': 18389.585, 'title': 'Introduction to time module and smtp', 'summary': 'Introduces the time module, explaining epoch time and demonstrating functions like time.time() and time.localtime(). it also covers the smtp module, detailing its setup and usage for sending emails via python.', 'duration': 304.167, 'highlights': ['The chapter explains the concept of epoch time, stating that it started on 1st January 1970, and demonstrates the usage of time.time() to retrieve the current epoch time.', 'It showcases the conversion of epoch time to a readable format using time.localtime(), providing an example of the structured time data and how to extract specific information like the year.', 'The tutorial outlines the SMTP module, emphasizing its role as a protocol for sending emails and delving into the setup process, including defining the domain and port using SMTP and starting the TLS mode for secure communication.']}, {'end': 19136.41, 'start': 18693.993, 'title': 'Automating file creation and email sending with python', 'summary': 'Explains how to automate file creation and email sending using python, including creating a file using the os package, checking if the file exists, automating email sending using smtp, and creating flexible functions to handle varying arguments.', 'duration': 442.417, 'highlights': ["Automating file creation by checking if the file exists and creating it if not using the OS package The program checks if the file is present using path.isfile() and creates the file using open(dest, 'w') if not present, automating the file creation process.", 'Automating email sending using SMTP and sending a test email The chapter demonstrates how to use SMTP to log in and send an email, including specifying the sender and recipient email IDs, composing the email message, and closing the SMTP connection.', 'Creating flexible functions to handle varying arguments using *args and **kwargs The chapter explains how to use *args to handle a variable number of arguments and **kwargs to handle labeled arguments, demonstrating the flexibility of these functions.']}, {'end': 19605.848, 'start': 19136.41, 'title': 'Python functions and classes', 'summary': 'Covers the concept of nested functions, creating classes at runtime using factory, and the use of decorators in python, demonstrating examples and their outputs.', 'duration': 469.438, 'highlights': ["Python allows a function to determine the number of arguments it receives at runtime. This demonstrates Python's flexibility in handling arguments at runtime.", 'Nested functions in Python can be used to pass a function as an object and execute functions at runtime. Shows the concept of nested functions and how functions can be passed as objects to execute at runtime.', 'Python allows creating classes at runtime using the factory pattern, demonstrating the creation of classes C1 and C2 with different attribute values. Illustrates the concept of creating classes at runtime and the use of the factory pattern.', 'The use of decorators in Python allows for easy calling of functions and provides a convenient way to modify functions or methods. Explains the usage and benefits of decorators in Python.']}], 'duration': 1262.08, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s18343768.jpg', 'highlights': ['Demonstrates using OS module to find file paths and retrieve current working directory', 'Explains epoch time and demonstrates usage of time.time() to retrieve current epoch time', 'Outlines SMTP module for sending emails and delves into setup process', 'Automates file creation and email sending using OS and SMTP packages', 'Explains creating flexible functions to handle varying arguments using *args and **kwargs', "Demonstrates Python's flexibility in handling arguments at runtime", 'Illustrates nested functions and passing functions as objects to execute at runtime', 'Illustrates creating classes at runtime using the factory pattern', 'Explains the usage and benefits of decorators in Python']}, {'end': 20683.714, 'segs': [{'end': 20250.222, 'src': 'embed', 'start': 20227.31, 'weight': 1, 'content': [{'end': 20235.453, 'text': 'then pandas is also very useful in time series specific functionality like date range generation, moving window, linear regression, date shifting,', 'start': 20227.31, 'duration': 8.143}, {'end': 20240.415, 'text': "etc. now let's look at a very simple example of how to create a data frame.", 'start': 20235.453, 'duration': 4.962}, {'end': 20246.338, 'text': 'so data frame is a very useful data structure in pandas and it has very powerful functionalities.', 'start': 20240.415, 'duration': 5.923}, {'end': 20250.222, 'text': "so here i'm only enlisting important libraries in data science.", 'start': 20246.678, 'duration': 3.544}], 'summary': 'Pandas offers time series tools and powerful data frame functionality in data science.', 'duration': 22.912, 'max_score': 20227.31, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s20227310.jpg'}, {'end': 20555.029, 'src': 'embed', 'start': 20519.458, 'weight': 0, 'content': [{'end': 20520.679, 'text': "And it's just that simple.", 'start': 20519.458, 'duration': 1.221}, {'end': 20524.783, 'text': 'So that was about the leading Python libraries in the field of data science.', 'start': 20521, 'duration': 3.783}, {'end': 20530.91, 'text': 'Along with these libraries, data scientists are also leveraging the power of some other useful libraries.', 'start': 20525.564, 'duration': 5.346}, {'end': 20538.078, 'text': 'For example, like TensorFlow, Keras is another popular library which is extensively used for deep learning and neural network modules.', 'start': 20531.19, 'duration': 6.888}, {'end': 20545.246, 'text': "Keras wraps both TensorFlow and Theano backends, so it is a good option if you don't want to dive into details of TensorFlow.", 'start': 20538.318, 'duration': 6.928}, {'end': 20548.167, 'text': 'then scikit-learn is a machine learning library.', 'start': 20545.606, 'duration': 2.561}, {'end': 20555.029, 'text': 'it provides almost all the machine learning algorithms that you need and it is designed to interpolate with numpy and scipy.', 'start': 20548.167, 'duration': 6.862}], 'summary': 'Leading python data science libraries include tensorflow, keras, and scikit-learn, offering a range of machine learning and deep learning functionalities.', 'duration': 35.571, 'max_score': 20519.458, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s20519458.jpg'}], 'start': 19605.848, 'title': 'Python libraries for data science', 'summary': 'Discusses python libraries such as tensorflow, numpy, scipy, and pandas, highlighting their features, applications, and contributions on github. for instance, tensorflow achieves 92% accuracy, numpy has 18,000 commits and 700 contributors, and pandas has 17,000 commits and 1,200 contributors, emphasizing their significance in data science and machine learning.', 'chapters': [{'end': 19794.71, 'start': 19605.848, 'title': 'Python libraries for data science', 'summary': 'Discusses the concept of decorators in python functions and then provides an overview of the tensorflow library, highlighting its features, applications, and a sample model achieving 92% accuracy.', 'duration': 188.862, 'highlights': ['TensorFlow is a library for high-performance numerical computations with around 35,000 GitHub commits and a vibrant community of around 1,500 contributors. TensorFlow is highlighted as a library for high-performance numerical computations with impressive community support, evidenced by 35,000 GitHub commits and a vibrant community of 1,500 contributors.', "TensorFlow reduces the error largely by 50-60% in neural machine translations and is highly parallel, able to train multiple neural networks and multiple GPUs for highly efficient and scalable models. TensorFlow's impressive capabilities include reducing errors by 50-60% in neural machine translations and its highly parallel nature, enabling training of multiple neural networks and GPUs for efficient and scalable models.", 'TensorFlow is extensively used in speech and image recognition, text-based applications, time series analysis and forecasting, and various other applications involving video detection. The widespread applications of TensorFlow encompass speech and image recognition, text-based applications, time series analysis, forecasting, and video detection.', 'A TensorFlow model achieving 92% accuracy is showcased through the example of recognizing handwritten digits using the Amnes dataset. An example of a TensorFlow model achieving 92% accuracy is provided, demonstrating its capability in recognizing handwritten digits using the Amnes dataset.']}, {'end': 20127.702, 'start': 19794.99, 'title': 'Numpy and scipy in data science', 'summary': 'Covers the fundamental concepts of numpy and scipy, with numpy having around 18,000 commits on github and an active community of 700 contributors, and scipy having around 19,000 commits on github with 600 contributors. numpy is extensively used in data analysis and machine learning, while scipy is used in scientific and technical computations, offering various high-level commands for data manipulation and visualization.', 'duration': 332.712, 'highlights': ['NumPy has around 18,000 commits on GitHub and an active community of 700 contributors. Signifies the popularity and community support for NumPy, indicating its wide usage and reliability.', 'NumPy is extensively used in data analysis and machine learning, forming the base of other libraries like SciPy and Scikit-learn. Highlights the practical applications and importance of NumPy in the field of data science and machine learning.', 'SciPy has around 19,000 commits on GitHub, with an active community of 600 contributors. Demonstrates the popularity and community support for SciPy, indicating its wide usage and reliability.', 'SciPy is used in scientific and technical computations, offering various high-level commands for data manipulation and visualization. Illustrates the practical applications and significance of SciPy in scientific and technical computations, emphasizing its capabilities in data manipulation and visualization.']}, {'end': 20320.745, 'start': 20128.023, 'title': 'Pandas in data science', 'summary': 'Discusses the significance of pandas in data science, highlighting its popularity, functionalities, applications, and example of creating a data frame, with around 17,000 commits on github, an active community of 1,200 contributors, and its extensive usage in data wrangling, etl jobs, and time series specific functionality.', 'duration': 192.722, 'highlights': ['Pandas is the most popular and widely used Python library for data science, with around 17,000 commits on GitHub and an active community of 1,200 contributors.', 'Pandas is extensively used in general data wrangling and data cleaning, ETL jobs for data transformation and data storage, and time series specific functionality like date range generation, moving window, linear regression, date shifting, etc.', 'Pandas provides fast, flexible data structures like data frames series, which are designed to work with structured data very easily and intuitively.', 'Pandas offers various methods like drop, any, fill, any, which gives freedom to deal with missing data, and a powerful apply function to create and run custom functions across a series of data.']}, {'end': 20683.714, 'start': 20320.945, 'title': 'Numpy, pandas, matplotlib, and scikit-learn', 'summary': 'Introduces the powerful python libraries numpy, pandas, matplotlib, and scikit-learn, emphasizing the significance of numpy in scientific and numerical computing, and highlights the key features and applications of matplotlib, with mentions of its vibrant community, backends, and object-oriented api.', 'duration': 362.769, 'highlights': ["Matplotlib has around 26,000 commits on GitHub and a very vibrant community of 700 contributors. Matplotlib's vibrant community with 26,000 commits on GitHub and 700 contributors showcases its widespread usage and active development.", 'Matplotlib provides an object-oriented API which can be used to embed plots into applications and supports dozens of backends and output types. The object-oriented API of Matplotlib allows embedding plots into applications, offering flexibility and compatibility across different operating systems and output formats.', "Pandas can be used as wrappers around Matplotlib's API to drive Matplotlib via cleaner and more modern APIs, with very little memory consumption and good runtime behavior. Pandas' integration with Matplotlib offers cleaner and modern APIs, with minimal memory consumption and efficient runtime behavior, enhancing the data visualization process.", 'Matplotlib finds its application in outlier detection using scatter plots and visualizing the distribution of data to gain instant insights. Matplotlib is used for outlier detection through scatter plots and for visualizing data distribution, providing immediate insights for analysis.', 'NumPy is the core library for scientific and numerical computing in Python, providing high-performance multi-dimensional array object and tools for working with arrays. NumPy serves as the core library for scientific and numerical computing, offering high-performance multi-dimensional array objects and array manipulation tools, forming the foundation for various Python modules.']}], 'duration': 1077.866, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s19605848.jpg', 'highlights': ['TensorFlow achieves 92% accuracy in recognizing handwritten digits using the Amnes dataset.', 'NumPy has 18,000 commits and 700 contributors, forming the base of other libraries like SciPy and Scikit-learn.', 'SciPy has around 19,000 commits on GitHub, used in scientific and technical computations, offering high-level commands for data manipulation and visualization.', 'Pandas has 17,000 commits and 1,200 contributors, extensively used in general data wrangling, data cleaning, ETL jobs, and time series specific functionality.', 'Matplotlib has around 26,000 commits on GitHub, provides an object-oriented API for embedding plots into applications, and is used for outlier detection and visualizing data distribution.']}, {'end': 21693.201, 'segs': [{'end': 21358.509, 'src': 'embed', 'start': 21326.214, 'weight': 2, 'content': [{'end': 21326.615, 'text': 'There we go.', 'start': 21326.214, 'duration': 0.401}, {'end': 21328.336, 'text': "Okay, so we'll go ahead and run this.", 'start': 21326.835, 'duration': 1.501}, {'end': 21332.698, 'text': 'And we can see here that the Python list took 34.', 'start': 21329.937, 'duration': 2.761}, {'end': 21337.141, 'text': 'Actually, I have to go back and look at the conversion on there.', 'start': 21332.698, 'duration': 4.443}, {'end': 21339.423, 'text': 'But you can see it takes roughly 0.34 of a second.', 'start': 21337.181, 'duration': 2.242}, {'end': 21342.244, 'text': 'And we can go ahead and print the result in here too.', 'start': 21340.083, 'duration': 2.161}, {'end': 21343.725, 'text': "Let's do that.", 'start': 21343.025, 'duration': 0.7}, {'end': 21347.928, 'text': "I'll run that just so you can see what kind of data we're looking at.", 'start': 21344.986, 'duration': 2.942}, {'end': 21351.487, 'text': 'And we have the 0, 2, 4, 6, 8.', 'start': 21349.807, 'duration': 1.68}, {'end': 21353.028, 'text': "So it's just adding them together.", 'start': 21351.487, 'duration': 1.541}, {'end': 21354.468, 'text': 'It looks pretty straightforward on there.', 'start': 21353.048, 'duration': 1.42}, {'end': 21358.509, 'text': 'And if we scroll down to the bottom of the answer, again, we see Python list took 46.', 'start': 21355.108, 'duration': 3.401}], 'summary': 'Python list took 34 seconds, and at the bottom python list took 46 seconds.', 'duration': 32.295, 'max_score': 21326.214, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s21326214.jpg'}, {'end': 21701.679, 'src': 'embed', 'start': 21673.295, 'weight': 0, 'content': [{'end': 21676.538, 'text': 'And it should be the same, 3, 2, so it all matches.', 'start': 21673.295, 'duration': 3.243}, {'end': 21677.959, 'text': "So we've gone through.", 'start': 21677.259, 'duration': 0.7}, {'end': 21681.582, 'text': 'And remember if this is all brand new to you.', 'start': 21678.42, 'duration': 3.162}, {'end': 21690.496, 'text': "According to the Cambridge study at the Cambridge University, if you're learning a brand new word in a foreign language,", 'start': 21682.503, 'duration': 7.993}, {'end': 21693.201, 'text': "the average person has to repeat it 163 times before it's memorized.", 'start': 21690.496, 'duration': 2.705}, {'end': 21701.679, 'text': "So a lot of this you build off of it, so hopefully you don't have to repeat it 163 times.", 'start': 21697.017, 'duration': 4.662}], 'summary': 'On average, a person has to repeat a new foreign word 163 times for memorization.', 'duration': 28.384, 'max_score': 21673.295, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s21673295.jpg'}], 'start': 20684.175, 'title': 'Introduction to jupyter and anaconda, numpy array vs python list, and efficiency and convenience of numpy', 'summary': 'Provides an introduction to jupyter notebook and anaconda, compares numpy array and python list, emphasizing the efficiency and convenience of numpy, showcasing a 15x faster performance of numpy arrays, and detailing key features and benefits including memory usage and speed differences.', 'chapters': [{'end': 20865.052, 'start': 20684.175, 'title': 'Introduction to jupyter and anaconda', 'summary': 'Introduces the jupyter notebook and anaconda, highlighting their features and benefits, as well as demonstrating how to set up and use them in python environments, including the installation of python 3.7 and creating separate environments for different python versions. it also showcases launching jupyter notebook from anaconda navigator and creating new python 3 notebooks.', 'duration': 180.877, 'highlights': ['Anaconda facilitates the management of different Python environments, including the installation of Python 3.7 and creating separate environments for different Python versions. Python 3.7, different Python versions', 'The chapter demonstrates launching Jupyter Notebook from Anaconda Navigator and creating new Python 3 notebooks, showcasing the process of setting up and using Jupyter in Python environments. Launching Jupyter Notebook, creating new Python 3 notebooks', 'Introduction to Jupyter and Anaconda, highlighting their features, benefits, and usage in Python environments. Features, benefits, usage in Python environments']}, {'end': 21083.086, 'start': 20865.052, 'title': 'Numpy array vs python list', 'summary': 'Compares numpy array and python list, emphasizing that numpy array is fast, convenient, and uses less memory for storing data, and demonstrates the differences through code.', 'duration': 218.034, 'highlights': ['The NumPy array has been optimized over years and is usually very quick compared to the basic Python list setup, making it a faster data storage option.', 'NumPy array has a lot of functionality not present in the basic Python list, making it a convenient choice for data manipulation and analysis.', 'NumPy array uses less memory compared to the basic Python list, optimizing both speed and memory use for data storage.']}, {'end': 21693.201, 'start': 21083.967, 'title': 'Efficiency and convenience of numpy', 'summary': 'Discusses the efficiency and convenience of using numpy, highlighting the significant difference in memory usage and speed between numpy arrays and python lists, showcasing a 15x faster performance of numpy arrays, and detailing the key features of numpy arrays including dimensions, item size, data type conversion, and shape.', 'duration': 609.234, 'highlights': ['NumPy arrays perform 15 times faster than Python lists, with a time difference of 46 seconds for Python lists compared to 2.99 seconds for NumPy arrays.', 'The size of the array created with NumPy is 28,000 bytes, significantly smaller than the 4,000 bytes generated by Python lists, demonstrating the efficiency of memory usage with NumPy arrays.', 'The chapter provides insights into the key features of NumPy arrays, including dimensions, item size, data type conversion, and shape, which are essential for data science applications and machine learning models.']}], 'duration': 1009.026, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s20684175.jpg', 'highlights': ['NumPy arrays perform 15 times faster than Python lists, with a time difference of 46 seconds for Python lists compared to 2.99 seconds for NumPy arrays.', 'The size of the array created with NumPy is 28,000 bytes, significantly smaller than the 4,000 bytes generated by Python lists, demonstrating the efficiency of memory usage with NumPy arrays.', 'Anaconda facilitates the management of different Python environments, including the installation of Python 3.7 and creating separate environments for different Python versions.']}, {'end': 23783.314, 'segs': [{'end': 22436.561, 'src': 'embed', 'start': 22409.625, 'weight': 1, 'content': [{'end': 22414.968, 'text': 'file-related operations on a data frame, visualization, and then some practice examples.', 'start': 22409.625, 'duration': 5.343}, {'end': 22417.79, 'text': 'Roll up our sleeves and get some coding underneath there.', 'start': 22415.348, 'duration': 2.442}, {'end': 22426.635, 'text': "And let's start with just some real general, what is Pandas? Pandas is a tool for data processing which helps in data analysis.", 'start': 22418.39, 'duration': 8.245}, {'end': 22431.338, 'text': 'It provides functions and methods to efficiently manipulate large data sets.', 'start': 22427.155, 'duration': 4.183}, {'end': 22436.561, 'text': 'Now, this is a step down from, say, using Spark or Hadoop in big data.', 'start': 22431.918, 'duration': 4.643}], 'summary': 'Pandas is a tool for data processing, enabling efficient manipulation of large data sets.', 'duration': 26.936, 'max_score': 22409.625, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s22409625.jpg'}, {'end': 22817.668, 'src': 'embed', 'start': 22787.712, 'weight': 0, 'content': [{'end': 22791.093, 'text': "And then because we're in Jupyter, we don't have to put the print statement.", 'start': 22787.712, 'duration': 3.381}, {'end': 22794.875, 'text': "We can just put S1, and it'll print out this series for us.", 'start': 22791.153, 'duration': 3.722}, {'end': 22797.196, 'text': "Now let's go ahead and run that and take a look.", 'start': 22795.655, 'duration': 1.541}, {'end': 22800.458, 'text': "And you'll see we have two rows of numbers.", 'start': 22798.317, 'duration': 2.141}, {'end': 22803.48, 'text': 'So the first one is the index.', 'start': 22801.058, 'duration': 2.422}, {'end': 22808.082, 'text': 'Now it automatically creates the index starting with 0 unless you tell it to do differently.', 'start': 22804.04, 'duration': 4.042}, {'end': 22814.144, 'text': 'So we get 0 index row 0 is 0, 1, 1, 2, 2, 3, 3, 4, 4.', 'start': 22808.442, 'duration': 5.702}, {'end': 22817.668, 'text': "And because it's a series, it doesn't need a title for the column.", 'start': 22814.146, 'duration': 3.522}], 'summary': 'In jupyter, s1 prints series, giving 0-index row with numbers.', 'duration': 29.956, 'max_score': 22787.712, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s22787712.jpg'}, {'end': 23369.21, 'src': 'embed', 'start': 23341.323, 'weight': 5, 'content': [{'end': 23344.945, 'text': 'And one of the first things we can do is we can add one series to the next.', 'start': 23341.323, 'duration': 3.622}, {'end': 23348.546, 'text': 'So I can do s5.add s6.', 'start': 23345.365, 'duration': 3.181}, {'end': 23350.747, 'text': "And let's see what that generates.", 'start': 23349.146, 'duration': 1.601}, {'end': 23353.588, 'text': "And just a quick thing if you've never used pandas,", 'start': 23351.027, 'duration': 2.561}, {'end': 23361.552, 'text': 'what do you think is going to happen with the fact that this only has five different values in it and this one has seven values?', 'start': 23353.588, 'duration': 7.964}, {'end': 23363.687, 'text': "So let's see what that does.", 'start': 23362.526, 'duration': 1.161}, {'end': 23367.568, 'text': 'And we end up with 6, 8, 10, 12, 9.', 'start': 23364.527, 'duration': 3.041}, {'end': 23369.21, 'text': "And it goes, oh, I can't add this.", 'start': 23367.569, 'duration': 1.641}], 'summary': 'Adding series: s5 with 5 values to s6 with 7 values results in an error.', 'duration': 27.887, 'max_score': 23341.323, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s23341323.jpg'}, {'end': 23661.472, 'src': 'embed', 'start': 23631.833, 'weight': 2, 'content': [{'end': 23634.654, 'text': "a series of dates that we're going to use as our index.", 'start': 23631.833, 'duration': 2.821}, {'end': 23639.495, 'text': 'And this is a pandas command, so we have a date range, which is nice.', 'start': 23635.174, 'duration': 4.321}, {'end': 23642.555, 'text': "It's one of the tools hidden in there in the pandas that you can use.", 'start': 23639.555, 'duration': 3}, {'end': 23646.676, 'text': "And next we're going to use numpy to go ahead and generate some random numbers.", 'start': 23643.296, 'duration': 3.38}, {'end': 23652.518, 'text': "In this case we'll do the np.random.random in 6 comma 4.", 'start': 23646.696, 'duration': 5.822}, {'end': 23658.019, 'text': 'You can look at this as rows and columns as we move it into the pandas.', 'start': 23652.518, 'duration': 5.501}, {'end': 23661.472, 'text': 'And of course you could reshape this if you had those backwards on your data.', 'start': 23658.41, 'duration': 3.062}], 'summary': 'Using pandas to create date range and numpy to generate random numbers for data manipulation.', 'duration': 29.639, 'max_score': 23631.833, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s23631833.jpg'}], 'start': 21697.017, 'title': 'Numpy and pandas basics', 'summary': 'Covers the creation, manipulation, and data processing of numpy arrays and pandas series, emphasizing the importance of knowing numpy and pandas for data science and processing. it includes the use of complex data types, array manipulation, pandas data frame structures, and various series manipulations for easy data transfer and visualization.', 'chapters': [{'end': 21837.166, 'start': 21697.017, 'title': 'Working with numpy data types', 'summary': 'Covers the creation and manipulation of numpy arrays, including the use of complex data types, with a focus on the np.zeros function and its importance in initializing weights for neural networks.', 'duration': 140.149, 'highlights': ['The chapter covers the creation and manipulation of NumPy arrays, including the use of complex data types. It discusses the creation and manipulation of NumPy arrays, emphasizing the use of complex data types like complex64 and complex128.', 'The importance of np.zeros function in initializing weights for neural networks is emphasized. The speaker highlights the significance of np.zeros in initializing weights for neural networks, citing its importance in a personal project involving the creation of arrays with all weights initialized to zero.', 'Demonstration of np.zeros and np.ones functions to create NumPy arrays of zeros and ones. The transcript demonstrates the use of np.zeros to create a NumPy array of zeros and mentions its importance in initializing weights for a neural network. It also briefly mentions the option of np.ones to create arrays of ones.']}, {'end': 22282.823, 'start': 21837.166, 'title': 'Numpy array manipulation', 'summary': 'Covers the manipulation of numpy arrays in python, including the creation of arrays, concatenation of strings, and various string manipulations, such as capitalize, title, lower, upper, split, split lines, strip, join, and replace.', 'duration': 445.657, 'highlights': ['The chapter covers the manipulation of numpy arrays in Python, including the creation of arrays, concatenation of strings, and various string manipulations, such as capitalize, title, lower, upper, split, split lines, strip, join, and replace.', "NumPy's array creation delays the generation until it is used, unlike Python 2.7 which creates the array immediately, showcasing an upgrade in Python.", "Demonstration of numpy's array concatenation functionality, combining different arrays and examples of using functions like multiply and center for string manipulation.", 'Illustration of common string manipulations such as capitalize, title, lower, upper, split, split lines, strip, join, and replace, showcasing their application and output.']}, {'end': 22694.761, 'start': 22282.843, 'title': 'Pandas tutorial and numpy basics', 'summary': 'Covers the basics of numpy, including creating arrays, manipulating their shape and size, and working with strings, as well as delving into pandas, a data processing tool for data analysis, which includes series and data frame structures, and emphasizes the importance of knowing numpy and pandas for data science and processing.', 'duration': 411.918, 'highlights': ['Pandas is a tool for data processing which helps in data analysis, providing functions and methods to efficiently manipulate large datasets, and it sits on Numpy. Pandas is a tool for data processing that efficiently manipulates large datasets and sits on Numpy, emphasizing its importance for data analysis and processing.', 'Pandas primarily revolves around the data frame, with series being a part of the data frame. Pandas primarily revolves around the data frame, with series being a part of it, and it emphasizes the significance of understanding both Numpy and Pandas for data science.', 'A Pandas series is a one-dimensional array with labels that can contain different data types, unlike Numpy. A Pandas series is a versatile one-dimensional array with labels that can contain various data types, unlike Numpy, which requires uniformity.', 'A data frame in Pandas is a two-dimensional data structure with labels for locating data, resembling an Excel spreadsheet, and it allows easy manipulation of data. A data frame in Pandas is a two-dimensional data structure with labels for locating data, resembling an Excel spreadsheet, and it allows easy manipulation of data, indicating its utility for data processing.', 'The chapter also covers the basics of Numpy, including creating arrays, manipulating their shape and size, working with strings, and emphasizes their importance for data science and processing. The chapter covers the basics of Numpy, including creating arrays, manipulating their shape and size, working with strings, and emphasizes their importance for data science and processing.']}, {'end': 23096.671, 'start': 22695.402, 'title': 'Pandas series creation and manipulation', 'summary': 'Covers the creation of pandas series from python lists, numpy arrays, and dictionaries, showcasing various methods to manipulate the index and data types, enabling easy data transfer into a pandas data table.', 'duration': 401.269, 'highlights': ['Creation of pandas series from Python lists, numpy arrays, and dictionaries The chapter demonstrates the creation of pandas series from Python lists, numpy arrays, and dictionaries, providing versatile methods for data input.', 'Manipulation of index and data types Different methods for manipulating the index and data types are showcased, including altering the index to improve readability and representing larger databases.', 'Data transfer into a pandas data table The code seamlessly transfers from working with series to the actual data table, enabling efficient data manipulation and analysis.']}, {'end': 23783.314, 'start': 23097.791, 'title': 'Pandas data manipulation', 'summary': 'Covers the basics of manipulating pandas series, including slicing, appending, dropping, and series operations like addition, subtraction, multiplication, and division. it also demonstrates the creation of a data frame with dates and random numbers using numpy, showcasing the ease of data visualization.', 'duration': 685.523, 'highlights': ['The chapter covers the basics of manipulating pandas Series, including slicing, appending, dropping, and series operations like addition, subtraction, multiplication, and division. It explains the fundamental operations performed on pandas Series, such as slicing, appending, and dropping, and demonstrates series operations like addition, subtraction, multiplication, and division.', 'It also demonstrates the creation of a data frame with dates and random numbers using numpy, showcasing the ease of data visualization. The chapter showcases the creation of a data frame using dates as the index and random numbers generated by numpy, emphasizing the visual appeal and readability of the resulting data frame.']}], 'duration': 2086.297, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s21697017.jpg', 'highlights': ['Covers the creation and manipulation of NumPy arrays, emphasizing the use of complex data types like complex64 and complex128.', "Demonstration of numpy's array concatenation functionality, combining different arrays and examples of using functions like multiply and center for string manipulation.", 'Pandas is a tool for data processing that efficiently manipulates large datasets and sits on Numpy, emphasizing its importance for data analysis and processing.', 'A Pandas series is a versatile one-dimensional array with labels that can contain various data types, unlike Numpy, which requires uniformity.', 'The chapter demonstrates the creation of pandas series from Python lists, numpy arrays, and dictionaries, providing versatile methods for data input.', 'The chapter covers the basics of manipulating pandas Series, including slicing, appending, dropping, and series operations like addition, subtraction, multiplication, and division.']}, {'end': 25049.224, 'segs': [{'end': 23822.938, 'src': 'embed', 'start': 23783.614, 'weight': 3, 'content': [{'end': 23788.015, 'text': 'So you can see that we can really create a nice clear chart, and it looks just like a spreadsheet.', 'start': 23783.614, 'duration': 4.401}, {'end': 23791.737, 'text': 'You know, we have our rows, and we have our columns, and we have our data in there.', 'start': 23788.276, 'duration': 3.461}, {'end': 23794.038, 'text': 'Now this one I use all the time.', 'start': 23792.237, 'duration': 1.801}, {'end': 23797.519, 'text': "If we're going to create, we can create it like you saw here with our numpy array.", 'start': 23794.058, 'duration': 3.461}, {'end': 23799.48, 'text': 'Very easy to do that and reshape it.', 'start': 23797.899, 'duration': 1.581}, {'end': 23801.422, 'text': 'You can also create it with a dictionary array.', 'start': 23799.781, 'duration': 1.641}, {'end': 23803.003, 'text': 'So here we have some data.', 'start': 23801.622, 'duration': 1.381}, {'end': 23805.905, 'text': 'Let me just go down a notch so you can see all the data on there.', 'start': 23803.203, 'duration': 2.702}, {'end': 23811.829, 'text': 'We have an animal, in this case cat, cat, snake, dog, dog, cat, snake, cat, dog.', 'start': 23806.305, 'duration': 5.524}, {'end': 23814.171, 'text': 'We have the age, so we have an array of ages.', 'start': 23812.089, 'duration': 2.082}, {'end': 23817.373, 'text': 'We have the number of visits and the priority.', 'start': 23814.691, 'duration': 2.682}, {'end': 23818.894, 'text': 'Was it a high priority? Yes.', 'start': 23817.393, 'duration': 1.501}, {'end': 23822.938, 'text': "No And then we're going to take that, we're going to create some labels.", 'start': 23819.555, 'duration': 3.383}], 'summary': 'Demonstrating creation of clear charts using numpy and dictionary arrays.', 'duration': 39.324, 'max_score': 23783.614, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s23783614.jpg'}, {'end': 23900.311, 'src': 'embed', 'start': 23871.249, 'weight': 2, 'content': [{'end': 23873.61, 'text': "let's go ahead and print it out so we can see what that looks like df2.", 'start': 23871.249, 'duration': 2.361}, {'end': 23876.431, 'text': "so let's go ahead and run that another again.", 'start': 23873.61, 'duration': 2.821}, {'end': 23879.373, 'text': 'you have a nice, very clean chart to look at.', 'start': 23876.431, 'duration': 2.942}, {'end': 23888.596, 'text': "we've gone from this mess of data here to what looks like a very organized spreadsheet, very visual and easy to read animal age, visits, priority,", 'start': 23879.373, 'duration': 9.223}, {'end': 23892.258, 'text': 'and then a through j, cats and all your different animals, so on and so on.', 'start': 23888.596, 'duration': 3.662}, {'end': 23896.308, 'text': "And then, when you do programming a lot of times, it's important to know what the data types are.", 'start': 23892.665, 'duration': 3.643}, {'end': 23900.311, 'text': 'So we can simply do df2dtypes.', 'start': 23896.608, 'duration': 3.703}], 'summary': 'Data transformed into organized, visual spreadsheet with clear data types.', 'duration': 29.062, 'max_score': 23871.249, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s23871249.jpg'}, {'end': 24095.946, 'src': 'embed', 'start': 24067.199, 'weight': 0, 'content': [{'end': 24072.022, 'text': 'The index, setting it up is the same as when we set up the series, so that should look very familiar.', 'start': 24067.199, 'duration': 4.823}, {'end': 24077.385, 'text': 'So is the whole format, the numpy array, the index dates, and the columns, columns.', 'start': 24072.582, 'duration': 4.803}, {'end': 24082.529, 'text': "And remember in our numpy array, we're looking at row, comma, column.", 'start': 24077.785, 'duration': 4.744}, {'end': 24086.191, 'text': 'So six rows, four columns is how that reads in the data frame.', 'start': 24082.729, 'duration': 3.462}, {'end': 24090.464, 'text': 'And we went ahead and also did that from a dictionary.', 'start': 24087.503, 'duration': 2.961}, {'end': 24095.946, 'text': 'In this case, animal was the column name with all the date data underneath that column.', 'start': 24090.624, 'duration': 5.322}], 'summary': 'Setting up the index and numpy array with six rows and four columns, also creating a dataframe from a dictionary.', 'duration': 28.747, 'max_score': 24067.199, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s24067199.jpg'}, {'end': 24493.017, 'src': 'embed', 'start': 24467.669, 'weight': 1, 'content': [{'end': 24473.891, 'text': "And we find out that that's incorrect data, so we go ahead and switch to DF3, equal, and then we go ahead and print out our DF3.", 'start': 24467.669, 'duration': 6.222}, {'end': 24479.293, 'text': 'And if we go to F and age, it is now 1.5.', 'start': 24473.911, 'duration': 5.382}, {'end': 24481.313, 'text': "So we're just changing the value in the DF3.", 'start': 24479.293, 'duration': 2.02}, {'end': 24483.874, 'text': 'And this is changing the actual data frame.', 'start': 24481.573, 'duration': 2.301}, {'end': 24489.276, 'text': 'Remember, a lot of our stuff, we do a slice, and it returns another data frame.', 'start': 24484.334, 'duration': 4.942}, {'end': 24493.017, 'text': 'This changes the actual data frame and that value in the data frame.', 'start': 24489.796, 'duration': 3.221}], 'summary': 'Switched to df3, printed out with f and age at 1.5, changing actual data frame.', 'duration': 25.348, 'max_score': 24467.669, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s24467669.jpg'}], 'start': 23783.614, 'title': 'Pandas data manipulation', 'summary': 'Demonstrates creating organized data with pandas, accessing, describing, and manipulating data frames, handling missing values, and performing file handling operations, providing efficient data organization and manipulation techniques.', 'chapters': [{'end': 23992.63, 'start': 23783.614, 'title': 'Creating organized data with pandas', 'summary': 'Demonstrates how to create a pandas data frame from arrays and dictionaries, reshape it, create labels, and explore data types, providing insights into organizing and visualizing data effectively.', 'duration': 209.016, 'highlights': ['The chapter explains how to create a pandas data frame from arrays and dictionaries, reshape it, and create labels, offering an effective way to organize and visualize data. Creating pandas data frame, reshaping data, creating labels', 'It demonstrates the process of exploring data types within the data frame, including identifying object, float64, and integer64 data types. Exploring data types within the data frame', 'It showcases how to extract specific portions of the data frame using head and tail functions, providing flexibility in analyzing data. Using head and tail functions to extract specific portions of the data frame']}, {'end': 24373.037, 'start': 23993.317, 'title': 'Pandas data frame operations', 'summary': 'Covers accessing index, columns, and values in a pandas data frame, describing the data using df2.describe, and manipulating the data by transposing, sorting, slicing, and querying the data frame.', 'duration': 379.72, 'highlights': ['The chapter covers accessing index, columns, and values in a pandas data frame, describing the data using df2.describe, and manipulating the data by transposing, sorting, slicing, and querying the data frame. Accessing index, columns, and values | Describing the data using df2.describe | Manipulating the data by transposing, sorting, slicing, and querying the data frame', "The describe method generates statistics about the data frame, including count, mean, standard deviation, minimum value, 25th, 50th, and 75th percentiles, and maximum value for the 'age' and 'visits' columns. Statistics generated: count, mean, standard deviation, minimum value, 25th, 50th, 75th percentiles, and maximum value for 'age' and 'visits' columns | Describing the data frame using df2.describe", 'Transposing the data frame using the capital T for transpose flips the columns and indexes, allowing quick adjustment of the data shape from 4x6 to 6x4 if needed. Transposing the data frame using capital T for transpose | Quick adjustment of data shape from 4x6 to 6x4', "Sorting the data frame by a specific column, such as 'age', organizes the data in ascending order, providing a quick way to sort and analyze the data by different data in the data frame. Sorting the data frame by 'age' column in ascending order | Quick way to sort and analyze the data", 'Slicing the data frame using df2[1:3] extracts rows between index 1 and 3, and combining sorting and slicing enables narrowing down and manipulating the data effectively. Slicing the data frame using df2[1:3] | Combining sorting and slicing for effective data manipulation', "Querying the data frame to select specific columns, such as 'age' and 'visits', provides a quick way to analyze and work with selected columns of the data frame. Querying the data frame to select specific columns 'age' and 'visits' | Quick way to analyze and work with selected columns"]}, {'end': 24702.504, 'start': 24373.257, 'title': 'Handling missing values in pandas', 'summary': 'Explains techniques for handling missing values in pandas, including creating a copy of dataframes, identifying null values, modifying locations, calculating means, and performing string operations, with specific examples and outcomes provided throughout.', 'duration': 329.247, 'highlights': ['The chapter covers techniques for handling missing values, including creating a copy of dataframes, identifying null values, modifying locations, calculating means, and performing string operations, with specific examples and outcomes provided throughout.', 'The chapter demonstrates how to identify null values in a dataframe and create a chart of null values, showing the use of the isNull method to identify and visualize the distribution of null values in the dataframe.', 'The chapter illustrates modifying locations in the dataframe, showcasing the process of changing specific values within the dataframe using the location attribute, with a specific example of changing a value from 2.0 to 1.5.', 'The chapter explains how to calculate means in a dataframe, using the mean method to calculate the average of numerical columns, and demonstrates the use of various series operations like sum, minimum, and maximum on specific columns within the dataframe.', 'The chapter provides a detailed explanation of performing string operations in Pandas, showcasing the use of string functions like lower and upper to manipulate the values in a string series within the dataframe.']}, {'end': 25049.224, 'start': 24703.164, 'title': 'Dataframe operations and file handling', 'summary': 'Covers working with data frames, including filling null values with means, dropping missing data, and saving and importing data in csv and excel formats, providing efficient data manipulation and storage solutions.', 'duration': 346.06, 'highlights': ['The chapter explains how to fill null values in a DataFrame with the mean, providing a method to handle missing data efficiently.', 'It demonstrates the process of dropping rows with missing data in a DataFrame, showcasing a practical approach to data cleaning and manipulation.', 'It introduces the streamlined file handling capabilities of DataFrames, including saving and importing data in CSV and Excel formats, offering efficient solutions for data storage and manipulation.']}], 'duration': 1265.61, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s23783614.jpg', 'highlights': ['Creating pandas data frame, reshaping data, creating labels', 'Accessing index, columns, and values | Describing the data using df2.describe | Manipulating the data by transposing, sorting, slicing, and querying the data frame', "Statistics generated: count, mean, standard deviation, minimum value, 25th, 50th, 75th percentiles, and maximum value for 'age' and 'visits' columns | Describing the data frame using df2.describe", 'Handling missing values, including creating a copy of dataframes, identifying null values, modifying locations, calculating means, and performing string operations', 'Filling null values in a DataFrame with the mean | Dropping rows with missing data in a DataFrame', 'Streamlined file handling capabilities of DataFrames, including saving and importing data in CSV and Excel formats']}, {'end': 27144.236, 'segs': [{'end': 25078.887, 'src': 'embed', 'start': 25049.484, 'weight': 3, 'content': [{'end': 25050.325, 'text': "And let's run that.", 'start': 25049.484, 'duration': 0.841}, {'end': 25051.266, 'text': "Let's make this.", 'start': 25050.345, 'duration': 0.921}, {'end': 25052.627, 'text': "No, let's just do the whole thing.", 'start': 25051.546, 'duration': 1.081}, {'end': 25053.988, 'text': "So we'll go ahead and run that.", 'start': 25052.968, 'duration': 1.02}, {'end': 25057.812, 'text': "And it probably doesn't help that I completely forgot the read.", 'start': 25054.609, 'duration': 3.203}, {'end': 25061.395, 'text': 'So animal 2 equals pd.read.', 'start': 25058.373, 'duration': 3.022}, {'end': 25063.758, 'text': 'Excel There we go.', 'start': 25062.557, 'duration': 1.201}, {'end': 25065.74, 'text': 'Excel So now we go ahead and run it.', 'start': 25063.938, 'duration': 1.802}, {'end': 25070.782, 'text': 'And what we expect is happening here, we have the same data frame on here.', 'start': 25066.62, 'duration': 4.162}, {'end': 25074.184, 'text': 'And if I flick back to my folder, you can now see that we have the animal.', 'start': 25070.882, 'duration': 3.302}, {'end': 25078.887, 'text': 'One of these is in Excel, and one of these is a CSV on here.', 'start': 25074.264, 'duration': 4.623}], 'summary': 'Running code to read excel and csv files, resulting in two data frames.', 'duration': 29.403, 'max_score': 25049.484, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s25049484.jpg'}, {'end': 25981.578, 'src': 'embed', 'start': 25953.706, 'weight': 4, 'content': [{'end': 25956.667, 'text': "we're going to do the same thing, but know how we did this?", 'start': 25953.706, 'duration': 2.961}, {'end': 25959.788, 'text': "here's our figure, our canvas and our axes.", 'start': 25956.667, 'duration': 3.121}, {'end': 25962.389, 'text': "we're going to create actually two different axes.", 'start': 25959.788, 'duration': 2.601}, {'end': 25973.132, 'text': "we're going to create row 1, column 2, and so axes is an array of information so we can simply do for those two acts in axes.", 'start': 25962.389, 'duration': 10.743}, {'end': 25976.635, 'text': 'This will now look familiar x.plot.', 'start': 25974.474, 'duration': 2.161}, {'end': 25978.696, 'text': "We're going to do x, y.", 'start': 25976.915, 'duration': 1.781}, {'end': 25979.757, 'text': "We'll go ahead and make it red.", 'start': 25978.696, 'duration': 1.061}, {'end': 25981.578, 'text': 'Keep everything looking the same.', 'start': 25980.277, 'duration': 1.301}], 'summary': 'Creating two different axes for row 1, column 2, and plotting x vs y in red.', 'duration': 27.872, 'max_score': 25953.706, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s25953706.jpg'}, {'end': 26063.39, 'src': 'embed', 'start': 26018.825, 'weight': 0, 'content': [{'end': 26021.466, 'text': 'We can do in rows two and columns equals one.', 'start': 26018.825, 'duration': 2.641}, {'end': 26023.767, 'text': 'You can see two nice images right above each other.', 'start': 26021.686, 'duration': 2.081}, {'end': 26026.068, 'text': "We'll go back to the original.", 'start': 26023.787, 'duration': 2.281}, {'end': 26029.269, 'text': 'One row, two columns, side by side, left to right.', 'start': 26026.608, 'duration': 2.661}, {'end': 26037.913, 'text': 'And we can also draw a picture or graph inside another graph.', 'start': 26029.81, 'duration': 8.103}, {'end': 26040.874, 'text': "And that's kind of a fun thing to do.", 'start': 26039.553, 'duration': 1.321}, {'end': 26045.576, 'text': "It's important to note that we can layer our stuff on top of each other, which makes for a really nice presentation.", 'start': 26040.914, 'duration': 4.662}, {'end': 26047.858, 'text': "So let's start by fig.", 'start': 26046.297, 'duration': 1.561}, {'end': 26049.239, 'text': "We'll create another figure.", 'start': 26047.878, 'duration': 1.361}, {'end': 26051.061, 'text': "So we're going to start over again with our canvas.", 'start': 26049.279, 'duration': 1.782}, {'end': 26054.703, 'text': 'We set that equal to plt.figure.', 'start': 26051.661, 'duration': 3.042}, {'end': 26056.605, 'text': "So there's our new canvas.", 'start': 26055.484, 'duration': 1.121}, {'end': 26058.286, 'text': "And let's do axes.", 'start': 26057.105, 'duration': 1.181}, {'end': 26059.927, 'text': "We'll call it axes 1 and 2.", 'start': 26058.306, 'duration': 1.621}, {'end': 26063.39, 'text': 'Axes 1 equals fig.addAxes.', 'start': 26059.927, 'duration': 3.463}], 'summary': "Demonstration of creating and layering graphs within a canvas using python's matplotlib library.", 'duration': 44.565, 'max_score': 26018.825, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s26018825.jpg'}], 'start': 25049.484, 'title': 'Data visualization in python', 'summary': 'Covers managing excel and csv files, learning matplotlib basics, creating subplots and manipulating canvas in matplotlib, setting dpi for graphics, and plotting data with alpha and markers in python, with examples and practical demonstrations.', 'chapters': [{'end': 25088.332, 'start': 25049.484, 'title': 'Managing excel and csv files in python', 'summary': 'Demonstrates how to read and manage excel and csv files in python, highlighting the process of reading data from both file types and the common challenges faced while working with excel files.', 'duration': 38.848, 'highlights': ['The chapter demonstrates the process of reading and managing Excel and CSV files in Python.', 'It highlights the common challenges faced while working with Excel files, such as the need to pull out data from Excel files.', 'The tutorial includes steps to read data from both Excel and CSV files and the differences between the two file types.']}, {'end': 25714.296, 'start': 25088.412, 'title': 'Learning matplotlib basics', 'summary': 'Covers the basics of matplotlib, an open source drawing library for 2d and 3d graphics, used for visualizing data with various types of plots including bar charts, histograms, scatter plots, line charts, pie charts, and area graphs, and demonstrates the process of importing data, creating plots, and using subplots in a jupyter notebook environment.', 'duration': 625.884, 'highlights': ['Matplotlib is an open source drawing library which supports rich drawing types, used for 2D and 3D graphics. Matplotlib is an open source library used for 2D and 3D graphics.', 'Visualizing data with the help of Matplotlib library allows easy generation of plots, histograms, bar charts, and many other charts with just a few lines of code. Matplotlib allows for easy generation of various charts with minimal code.', 'Demonstrates the process of importing data and creating plots in a Jupyter Notebook environment, as well as using subplots to display multiple graphs. The chapter demonstrates the process of importing data, creating plots, and using subplots in a Jupyter Notebook environment.']}, {'end': 26212.333, 'start': 25714.336, 'title': 'Matplotlib subplots and canvas manipulation', 'summary': 'Covers the creation of subplots, manipulation of canvas size, and axes positioning in matplotlib, with examples of code and visual representation.', 'duration': 497.997, 'highlights': ['Creation of subplots and manipulation of canvas size The transcript extensively covers the creation of subplots and manipulation of canvas size, with examples of code and visual representation.', 'Axes positioning in Matplotlib The chapter demonstrates the positioning of axes in Matplotlib, showcasing the control of left, right, width, and height of the canvas, with practical examples.', "Uniformity in graph presentation The importance of maintaining uniformity in graph presentation is emphasized, with suggestions to keep the same colors, position, and overall look and feel, unless it doesn't make sense for the specific graph."]}, {'end': 26590.75, 'start': 26212.453, 'title': 'Setting dpi for graphics', 'summary': 'Demonstrates the significance of dpi in graphics, emphasizing the importance of 300 dpi for professional printing and the impact of dpi on memory usage and drawing time, also covering the addition of titles, labels, and legends to graphs.', 'duration': 378.297, 'highlights': ['The importance of 300 DPI for professional printing and the impact of DPI on memory usage and drawing time 300 DPI is recommended for professional printing, while higher DPI results in increased memory usage and drawing time.', 'Addition of titles, labels, and legends to graphs The chapter covers adding titles, labels, and legends to graphs, demonstrating their visual impact and functionality.', 'Demonstration of setting DPI to 300 for higher quality output Setting DPI to 300 results in higher quality output for professional graphics and printing, while also showcasing the impact of doubling the DPI to 600 on drawing time.', 'Control and customization of line colors in graphs The use of color references and codes to customize line colors in graphs, showcasing options such as red, blue, and green for visual differentiation.']}, {'end': 27144.236, 'start': 26590.75, 'title': 'Plotting data with alpha and markers', 'summary': 'Demonstrates the use of alpha to control transparency and markers to visualize data points, as well as manipulating line width and style to customize plot appearance in a python data visualization context.', 'duration': 553.486, 'highlights': ['The chapter demonstrates the use of alpha to control transparency. The presenter sets alpha to 0.5 to make the plot halfway see-through, allowing better visualization of intersecting lines.', 'Markers are used to visualize data points on the graph. The different markers including dots, plus signs, squares, and number ones are showcased, and marker size and face color are manipulated to customize the appearance of the data points.', 'Manipulating line width and style is shown to customize plot appearance. The presenter demonstrates changing line width from 0.25 to 2 and explores different line styles such as dashes, dashed dots, and dots, along with varying the length of dashes to visualize data in a customized manner.']}], 'duration': 2094.752, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s25049484.jpg', 'highlights': ['The chapter demonstrates the process of reading and managing Excel and CSV files in Python.', 'Demonstrates the process of importing data, creating plots, and using subplots in a Jupyter Notebook environment.', 'Creation of subplots and manipulation of canvas size with examples of code and visual representation.', 'The importance of 300 DPI for professional printing and the impact of DPI on memory usage and drawing time.', 'The chapter demonstrates the use of alpha to control transparency and manipulation of line width and style to customize plot appearance.']}, {'end': 28680.929, 'segs': [{'end': 27216.55, 'src': 'embed', 'start': 27188.45, 'weight': 4, 'content': [{'end': 27193.352, 'text': "We also briefly mention color, where you didn't have to use, like in here we used color black.", 'start': 27188.45, 'duration': 4.902}, {'end': 27200.355, 'text': "Someplace up here, I'd have to find it, we use the actual number for the color, as opposed to, I changed it to red and blue.", 'start': 27194.073, 'duration': 6.282}, {'end': 27206.958, 'text': "So you can get very precise on the color, if you have a very specific color set that you need to match your website or whatever you're working on.", 'start': 27200.375, 'duration': 6.583}, {'end': 27209.761, 'text': 'All of those are tools in the Matplot library.', 'start': 27207.598, 'duration': 2.163}, {'end': 27216.55, 'text': 'So we have one more piece to formatting the graph, so we want to show you, and then we have two big sections.', 'start': 27210.061, 'duration': 6.489}], 'summary': 'The transcript discusses using precise colors in matplot library for graphs.', 'duration': 28.1, 'max_score': 27188.45, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s27188450.jpg'}, {'end': 27319.872, 'src': 'embed', 'start': 27289.276, 'weight': 3, 'content': [{'end': 27293.919, 'text': "And this time we're going to take our axis 1 and do y limit.", 'start': 27289.276, 'duration': 4.643}, {'end': 27297.101, 'text': "It's actually set underscore y limit.", 'start': 27294.699, 'duration': 2.402}, {'end': 27298.582, 'text': 'This is the y axis.', 'start': 27297.261, 'duration': 1.321}, {'end': 27302.144, 'text': "So it's going to be an array of two values.", 'start': 27299.102, 'duration': 3.042}, {'end': 27304.385, 'text': "And we'll do 0 comma 60.", 'start': 27302.524, 'duration': 1.861}, {'end': 27305.886, 'text': "I'm just making these numbers up.", 'start': 27304.385, 'duration': 1.501}, {'end': 27307.607, 'text': 'The guys in the back actually made them up.', 'start': 27306.146, 'duration': 1.461}, {'end': 27308.688, 'text': "I'm just using their numbers.", 'start': 27307.667, 'duration': 1.021}, {'end': 27310.829, 'text': "And we're going to set the x limit.", 'start': 27309.308, 'duration': 1.521}, {'end': 27319.872, 'text': "And we'll set the x limit as, don't forget our brackets there, 2 comma 5.", 'start': 27313.386, 'duration': 6.486}], 'summary': 'Setting y-axis limits to 0-60 and x-axis limits to 2-5.', 'duration': 30.596, 'max_score': 27289.276, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s27289276.jpg'}, {'end': 27422.653, 'src': 'embed', 'start': 27394.082, 'weight': 1, 'content': [{'end': 27396.583, 'text': "We'll do zero to five on here.", 'start': 27394.082, 'duration': 2.501}, {'end': 27397.243, 'text': 'There we go.', 'start': 27396.743, 'duration': 0.5}, {'end': 27400.824, 'text': "let's look at four common graphs.", 'start': 27397.763, 'duration': 3.061}, {'end': 27403.425, 'text': "we'll put them side by side, so we'll do a figure.", 'start': 27400.824, 'duration': 2.601}, {'end': 27410.568, 'text': 'our axes equals, plot subplots one, four columns and then figure size hopefully will fit nicely on here.', 'start': 27403.425, 'duration': 7.143}, {'end': 27415.29, 'text': "it seems to do pretty good on here and I'll go and just run that, since we're in there.", 'start': 27410.568, 'duration': 4.722}, {'end': 27422.653, 'text': "run. you'll see, I'd have four blank plots on here and we'll start with axes of zero.", 'start': 27415.29, 'duration': 7.363}], 'summary': 'Creating four common graphs with zero to five axes.', 'duration': 28.571, 'max_score': 27394.082, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s27394082.jpg'}, {'end': 27516.716, 'src': 'embed', 'start': 27487.4, 'weight': 0, 'content': [{'end': 27488.36, 'text': "So it's a scatter plot.", 'start': 27487.4, 'duration': 0.96}, {'end': 27491.667, 'text': 'Probably less used is a step plot.', 'start': 27489.326, 'duration': 2.341}, {'end': 27495.368, 'text': "So for x is 1, we'll go ahead and do a step plot so you can see what that looks like.", 'start': 27491.767, 'duration': 3.601}, {'end': 27498.109, 'text': "And this time, we'll use our n value instead of x.", 'start': 27495.648, 'duration': 2.461}, {'end': 27499.73, 'text': 'We generated that n value up here.', 'start': 27498.109, 'duration': 1.621}, {'end': 27506.892, 'text': 'And so for this, we have n, n times 2, our n squared, n times 2, n squared, line width equals 2.', 'start': 27500.13, 'duration': 6.762}, {'end': 27509.673, 'text': 'And if we run that, it creates a nice step up.', 'start': 27506.892, 'duration': 2.781}, {'end': 27511.714, 'text': "Let's see.", 'start': 27511.434, 'duration': 0.28}, {'end': 27513.015, 'text': "So we've got a scatter plot.", 'start': 27511.774, 'duration': 1.241}, {'end': 27514.875, 'text': "We've got a steps plot.", 'start': 27513.055, 'duration': 1.82}, {'end': 27516.716, 'text': "Let's do a bar plot.", 'start': 27515.255, 'duration': 1.461}], 'summary': 'Demonstration of scatter, step, and bar plots.', 'duration': 29.316, 'max_score': 27487.4, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s27487400.jpg'}, {'end': 28188.115, 'src': 'embed', 'start': 28160.053, 'weight': 2, 'content': [{'end': 28167.138, 'text': "but you can picture this being you're on a mountain climb and here we have a line that represents 0, maybe at sea level, and then, moving on up,", 'start': 28160.053, 'duration': 7.085}, {'end': 28172.622, 'text': 'you have your contours of 0.5 and then minus 1 and different setups, little hills.', 'start': 28167.138, 'duration': 5.484}, {'end': 28174.684, 'text': "I guess if it's minus that's like a pit.", 'start': 28172.622, 'duration': 2.062}, {'end': 28182.251, 'text': "so I guess you're going down into a pit at minus 5 and minus 1, but on the other side you can see you're going up in levels.", 'start': 28174.684, 'duration': 7.567}, {'end': 28188.115, 'text': "so here's a mountaintop and here's like a basin of some kind, And in data science this could represent a lot of things.", 'start': 28182.251, 'duration': 5.864}], 'summary': 'Data science visualization using mountain climb analogy.', 'duration': 28.062, 'max_score': 28160.053, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s28160053.jpg'}], 'start': 27144.236, 'title': 'Customizing visual representations, graph formatting, radar charts, and contour maps', 'summary': "Covers customizing visual representations with different widths, styles, and colors, creating subplots, limiting data, and visualizing various 2d graphs. it also discusses creating radar charts and histograms using python and numpy and generating contour maps using numpy commands. additionally, it explores scikit-learn's features and applications.", 'chapters': [{'end': 27206.958, 'start': 27144.236, 'title': 'Customizing visual representations', 'summary': 'Covers customizing lines with different widths, styles, and markers to create various representations, with the option to specify precise colors, offering a range of visual options for data visualization.', 'duration': 62.722, 'highlights': ['The chapter covers customizing lines with different widths, styles, and markers, offering a range of visual options for data visualization.', 'The transcript mentions the ability to specify precise colors, providing flexibility in matching specific color sets for website or other projects.', 'The chapter discusses the use of markers such as circle, plus sign, square, and tick, allowing for varied data representations.', 'It also briefly mentions opaque alpha settings for producing pastel shades and the ability to overlap and cross lines for different visual effects.']}, {'end': 27674.683, 'start': 27207.598, 'title': 'Matplot library: graph formatting and limiting data', 'summary': 'Covers creating subplots, plotting graphs, limiting data with y and x limits, and visualizing various 2d graphs such as scatter plots, step plots, bar plots, and fill between. the transcript introduces the matplot library tools and demonstrates how to format and limit graphs, showcasing the creation of subplots, plotting multiple graphs, and setting y and x limits. it then delves into creating different 2d graphs such as scatter plots, step plots, bar plots, and fill between, emphasizing their usage and visual representation.', 'duration': 467.085, 'highlights': ['The chapter covers creating subplots, plotting graphs, limiting data with y and x limits, and visualizing various 2D graphs such as scatter plots, step plots, bar plots, and fill between.', 'The transcript introduces the Matplot library tools and demonstrates how to format and limit graphs, showcasing the creation of subplots, plotting multiple graphs, and setting y and x limits.', 'The transcript then delves into creating different 2D graphs such as scatter plots, step plots, bar plots, and fill between, emphasizing their usage and visual representation.', 'The transcript explains how to create subplots with one row and two columns, set a figure size of 10x5, and plot multiple graphs on the same axes with different limits.', 'It demonstrates the use of scatter plots, step plots, bar plots, and fill between to visualize data, showcasing their unique visual representation and applications.', "The transcript also briefly mentions radar charts and expresses the speaker's curiosity about finding a practical use for them in business or data science."]}, {'end': 28028.641, 'start': 27675.324, 'title': 'Playing with radar charts and histograms', 'summary': 'Discusses creating radar charts and histograms using python and numpy, demonstrating the alteration of spiral size and the generation of a cumulative histogram with 100,000 variables, providing insights into the distribution of data.', 'duration': 353.317, 'highlights': ['Creating a radar chart with polar coordinates to alter the size, demonstrating the change in spiral size by modifying the numbers, and comparing it to a diagonal line on a regular chart.', 'Generating a cumulative histogram with 100,000 variables, showcasing the distribution of data and the significance of cumulative histograms in analyzing occurrences, using rainfall as an example.', 'Introducing contour maps and explaining the process of creating data for contour maps, along with the availability of diverse color maps for customization.']}, {'end': 28680.929, 'start': 28028.641, 'title': 'Generating contour maps and exploring scikit-learn', 'summary': 'Covers the process of generating a contour map using numpy commands and creating a mesh grid, followed by an explanation of scikit-learn, including its features and applications such as classification and regression models. it also delves into the importance of 3d maps and the capabilities of scikit-learn for data analysis and model selection.', 'duration': 652.288, 'highlights': ['The chapter covers the process of generating a contour map using numpy commands and creating a mesh grid. Demonstrates the steps involved in generating a contour map using numpy commands and creating a mesh grid with specific delta increments.', 'Explanation of Scikit-Learn, including its features and applications such as classification and regression models. Provides an overview of Scikit-Learn, highlighting its features and practical applications, including classification and regression models.', 'Importance of 3D maps and the capabilities of Scikit-Learn for data analysis and model selection. Emphasizes the significance of 3D maps in presenting additional information and discusses the capabilities of Scikit-Learn for data analysis and model selection.']}], 'duration': 1536.693, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s27144236.jpg', 'highlights': ['The chapter covers customizing lines with different widths, styles, and markers, offering a range of visual options for data visualization.', 'The chapter covers creating subplots, plotting graphs, limiting data with y and x limits, and visualizing various 2D graphs such as scatter plots, step plots, bar plots, and fill between.', 'Creating a radar chart with polar coordinates to alter the size, demonstrating the change in spiral size by modifying the numbers, and comparing it to a diagonal line on a regular chart.', 'The chapter covers the process of generating a contour map using numpy commands and creating a mesh grid. Demonstrates the steps involved in generating a contour map using numpy commands and creating a mesh grid with specific delta increments.', 'Explanation of Scikit-Learn, including its features and applications such as classification and regression models. Provides an overview of Scikit-Learn, highlighting its features and practical applications, including classification and regression models.']}, {'end': 30812.82, 'segs': [{'end': 28806.62, 'src': 'embed', 'start': 28779.127, 'weight': 4, 'content': [{'end': 28783.01, 'text': 'And for the column names, it has assigned the first row.', 'start': 28779.127, 'duration': 3.883}, {'end': 28789.615, 'text': 'So we have our first row of data pulled off our comma-separated variable file, in this case, semicolon-separated.', 'start': 28783.07, 'duration': 6.545}, {'end': 28791.956, 'text': 'And it shows the different features going across.', 'start': 28790.015, 'duration': 1.941}, {'end': 28797.337, 'text': 'And we have, what, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 features.', 'start': 28791.976, 'duration': 5.361}, {'end': 28801.018, 'text': "12 including quality, but that's the one we want to work on and understand.", 'start': 28797.957, 'duration': 3.061}, {'end': 28806.62, 'text': "And then because we're in Panda's data frame, we can also do wine.info.", 'start': 28801.418, 'duration': 5.202}], 'summary': 'The data includes 12 features, with the 12th being the focus for analysis.', 'duration': 27.493, 'max_score': 28779.127, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s28779127.jpg'}, {'end': 28850.219, 'src': 'embed', 'start': 28825.455, 'weight': 0, 'content': [{'end': 28830.979, 'text': "that can really trip us up in pre-processing and there's a number of ways to process non-null values.", 'start': 28825.455, 'duration': 5.524}, {'end': 28833.141, 'text': 'one is just to delete that data out of there.', 'start': 28830.979, 'duration': 2.162}, {'end': 28834.723, 'text': 'so if you have enough data in there,', 'start': 28833.141, 'duration': 1.582}, {'end': 28836.384, 'text': 'You might just delete your non-null values.', 'start': 28834.743, 'duration': 1.641}, {'end': 28843.512, 'text': 'Another one is to fill that information in with like the average or the most common values or other such means.', 'start': 28836.585, 'duration': 6.927}, {'end': 28845.133, 'text': "But we're not going to have to worry about that.", 'start': 28843.772, 'duration': 1.361}, {'end': 28850.219, 'text': "But we'll look at another way because we can also do wine is null and sum it up.", 'start': 28845.374, 'duration': 4.845}], 'summary': 'Pre-processing involves handling non-null values by either deleting or filling them with average/most common values.', 'duration': 24.764, 'max_score': 28825.455, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s28825455.jpg'}, {'end': 28925.547, 'src': 'embed', 'start': 28899.111, 'weight': 1, 'content': [{'end': 28904.453, 'text': "And to keep it simple, we're going to do a little pre-processing of the data, and we're going to create some bins.", 'start': 28899.111, 'duration': 5.342}, {'end': 28909.655, 'text': "And bins, we're going to do is 2, 6.5, 8.", 'start': 28905.113, 'duration': 4.542}, {'end': 28913.419, 'text': "What this means is that we're going to take those values.", 'start': 28909.656, 'duration': 3.763}, {'end': 28915.6, 'text': 'If you remember up here, let me just scroll back up here.', 'start': 28913.479, 'duration': 2.121}, {'end': 28916.601, 'text': 'We had our quality.', 'start': 28915.72, 'duration': 0.881}, {'end': 28920.623, 'text': 'The quality comes out between 2 and 8, basically, or 1 and 8.', 'start': 28916.681, 'duration': 3.942}, {'end': 28921.904, 'text': 'We have 5, 5, 5, 6.', 'start': 28920.623, 'duration': 1.281}, {'end': 28925.547, 'text': 'You can see just in the first five lines of variation in quality.', 'start': 28921.904, 'duration': 3.643}], 'summary': 'Data pre-processing involves creating bins at 2, 6.5, and 8 for quality values, showing variation in the first five lines.', 'duration': 26.436, 'max_score': 28899.111, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s28899111.jpg'}, {'end': 29384.948, 'src': 'embed', 'start': 29355.423, 'weight': 6, 'content': [{'end': 29359.546, 'text': "There is, and it's not even an sklearn package yet, so someone's still putting it in there.", 'start': 29355.423, 'duration': 4.123}, {'end': 29365.471, 'text': "One of the new things they do is they split the data into thirds, and then they'll run the model on..", 'start': 29359.827, 'duration': 5.644}, {'end': 29371.676, 'text': 'Each of, they combine each of those thirds into two thirds for training and one for testing.', 'start': 29365.971, 'duration': 5.705}, {'end': 29377.241, 'text': 'And so you actually go through all the data and you come up with three different test results from it, which is pretty cool.', 'start': 29371.937, 'duration': 5.304}, {'end': 29378.622, 'text': "That's a pretty cool way of doing it.", 'start': 29377.421, 'duration': 1.201}, {'end': 29384.948, 'text': 'You could actually do that with this by just splitting this into thirds and then, or you know, have a test site,', 'start': 29378.683, 'duration': 6.265}], 'summary': 'A new method splits data into thirds for training and testing, yielding three different test results.', 'duration': 29.525, 'max_score': 29355.423, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s29355423.jpg'}, {'end': 29420.298, 'src': 'embed', 'start': 29390.252, 'weight': 2, 'content': [{'end': 29393.615, 'text': "This works fine for most projects, especially when you're starting out.", 'start': 29390.252, 'duration': 3.363}, {'end': 29394.535, 'text': 'It works great.', 'start': 29393.755, 'duration': 0.78}, {'end': 29398.037, 'text': 'So we have our X train, our X test, our Y train, and our Y test.', 'start': 29394.555, 'duration': 3.482}, {'end': 29401.56, 'text': 'And then we need to go ahead and do the scalar.', 'start': 29398.358, 'duration': 3.202}, {'end': 29404.422, 'text': "And let's talk about this because this is really important.", 'start': 29401.74, 'duration': 2.682}, {'end': 29408.364, 'text': 'Some models do not need to have scaling going on.', 'start': 29404.942, 'duration': 3.422}, {'end': 29410.025, 'text': 'Most models do.', 'start': 29408.645, 'duration': 1.38}, {'end': 29411.847, 'text': 'And so we create our scalar variable.', 'start': 29410.326, 'duration': 1.521}, {'end': 29413.608, 'text': "We'll call it SC, standard scalar.", 'start': 29411.867, 'duration': 1.741}, {'end': 29420.298, 'text': 'And if you remember correctly, we imported that here, wrong with the label encoder, the standard scalar setup.', 'start': 29414.534, 'duration': 5.764}], 'summary': 'Standard scaling is crucial for most models; x and y trains/tests are essential for projects.', 'duration': 30.046, 'max_score': 29390.252, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s29390252.jpg'}, {'end': 29711.607, 'src': 'embed', 'start': 29683.842, 'weight': 10, 'content': [{'end': 29688.425, 'text': "so if you leave that out, it'll do default setup and we did a random state equals 42.", 'start': 29683.842, 'duration': 4.583}, {'end': 29690.127, 'text': "If you leave that out, it'll use a random state.", 'start': 29688.425, 'duration': 1.702}, {'end': 29691.428, 'text': "I believe it's default 1.", 'start': 29690.147, 'duration': 1.281}, {'end': 29692.509, 'text': "I'd have to look that back up.", 'start': 29691.428, 'duration': 1.081}, {'end': 29695.092, 'text': 'And then finally, we scaled the data.', 'start': 29692.81, 'duration': 2.282}, {'end': 29697.294, 'text': 'This is so important to scale the data.', 'start': 29695.352, 'duration': 1.942}, {'end': 29705.362, 'text': "Going back up to here, if you have something that's coming out as 100, it's going to really outweigh something that's 0.071.", 'start': 29697.534, 'duration': 7.828}, {'end': 29706.723, 'text': "That's not in all the models.", 'start': 29705.362, 'duration': 1.361}, {'end': 29708.765, 'text': 'Different models handle it differently.', 'start': 29707.083, 'duration': 1.682}, {'end': 29711.607, 'text': "And as we look at the different models, I'll talk a little bit about that.", 'start': 29709.085, 'duration': 2.522}], 'summary': 'Data was scaled, random state set to 42. scaling is crucial for model performance.', 'duration': 27.765, 'max_score': 29683.842, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s29683842.jpg'}], 'start': 28681.029, 'title': 'Wine quality analysis', 'summary': 'Covers loading and exploring a wine quality dataset with 1599 data lines, pre-processing the data to identify 217 higher quality wines, training a random forest classifier with 200 estimators, evaluating the performance of different models achieving 90% accuracy, and comparing basic classifiers in sklearn with an accuracy range of 86% to 90%.', 'chapters': [{'end': 28898.551, 'start': 28681.029, 'title': 'Loading and exploring wine quality dataset', 'summary': 'Focuses on loading a wine quality dataset using pandas, with 1599 lines of non-null data separated by semicolons, and explores the features and quality values, while highlighting the importance of non-null values and potential methods to handle null values in data processing.', 'duration': 217.522, 'highlights': ['The dataset consists of 1599 lines of non-null data separated by semicolons, with 11 features and quality values ranging from 5 to 7.', 'Using wine.info confirms the presence of 1599 non-null float64 values in the dataset, highlighting the absence of null values, crucial for data preprocessing.', 'Demonstrating the use of wine.isnull().sum() to identify null values and consider appropriate strategies for handling them, emphasizing the impact of null values on data analysis and modeling.']}, {'end': 29453.866, 'start': 28899.111, 'title': 'Wine quality pre-processing', 'summary': 'Describes the pre-processing of wine quality data, including creating bins for quality classification, encoding labels for bad and good quality, and splitting the data for training and testing, with 217 higher quality wines identified out of a total of 1599 wines.', 'duration': 554.755, 'highlights': ['Two bins (bad and good) are created based on wine quality, with 217 higher quality wines identified, representing a little under 20% of the total 1599 wines. Creation of two bins for wine quality classification, with 217 higher quality wines identified out of a total of 1599 wines.', 'Label encoder is used to encode bad as 0 and good as 1, and the data is pre-processed using fit transform to adjust values for modeling. Utilization of label encoder to encode bad as 0 and good as 1, and pre-processing of the data using fit transform for modeling.', 'The data is split into training and testing sets using train test split, with 20% of the data reserved for testing, and standard scalar is applied to normalize the values for modeling. Splitting of the data into training and testing sets using train test split with 20% reserved for testing, and application of standard scalar for value normalization.']}, {'end': 29964.022, 'start': 29454.166, 'title': 'Data preprocessing and model training', 'summary': 'Covers the preprocessing of data including scaling, label encoding, and splitting into training and test sets, followed by the training and prediction using a random forest classifier with 200 estimators and examination of the predicted values.', 'duration': 509.856, 'highlights': ['The chapter covers the preprocessing of data including scaling, label encoding, and splitting into training and test sets. The transcript discusses the process of scaling the data to bring all features to the same scale, label encoding for setting up unique labels and group names, and splitting the data into training and test sets using the train test split method from the sklearn package.', 'Training and prediction using a random forest classifier with 200 estimators. The chapter demonstrates the training of a random forest classifier with 200 estimators and the prediction of the test data using this model to identify the quality of wines, with the model predicting 3 good quality wines and 17 bad quality wines out of the first 20 test values.']}, {'end': 30452.476, 'start': 29964.222, 'title': 'Model comparison and performance evaluation', 'summary': 'Explores the performance evaluation of three different models - random forest classifier, support vector model, and multi-layered perceptron classifier - for predicting the quality of wine, achieving precision of 92% for bad wine, 78% for good wine, and an overall 90% accuracy, with the random forest classifier outperforming the others.', 'duration': 488.254, 'highlights': ['The Random Forest Classifier achieved an overall 90% accuracy, with 92% precision for bad wine and 78% for good wine. The precision of 92% for bad wine and 78% for good wine, along with an overall 90% accuracy, showcases the strong performance of the Random Forest Classifier.', "The Support Vector Model (SVM) attained an 86% accuracy, slightly lower than the Random Forest Classifier. The SVM's 86% accuracy, compared to the Random Forest Classifier's 90%, indicates a slightly lower performance for predicting wine quality.", "The Multi-layered Perceptron Classifier (MLPC) yielded an 88% accuracy, falling between the Random Forest Classifier and the SVM. With an accuracy of 88%, the MLPC's performance falls between the Random Forest Classifier and the SVM, contributing to a comprehensive understanding of model comparison."]}, {'end': 30812.82, 'start': 30452.476, 'title': 'Comparing basic classifiers in sklearn', 'summary': 'Compares the accuracy scores of three commonly used classifiers in sklearn: random forest (90%), support vector machine (86%), and decision tree. it also discusses the mislabeling of good and bad wines and the process of using the best model for future predictions.', 'duration': 360.344, 'highlights': ['The accuracy scores of three commonly used classifiers in SKLearn are compared: random forest (90%), support vector machine (86%), and decision tree. Accuracy scores of classifiers: random forest (90%), support vector machine (86%), decision tree.', 'Discussion on mislabeling of good and bad wines and the selection of the best model for future predictions. Mislabeling of good and bad wines, process for future predictions.', 'Exploration and comparison of common classifiers in SKLearn, including support vector machine, random forest, and neural network. Exploration of common classifiers: support vector machine, random forest, neural network.']}], 'duration': 2131.791, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s28681029.jpg', 'highlights': ['The dataset consists of 1599 lines of non-null data with 11 features and quality values ranging from 5 to 7.', 'Using wine.info confirms the presence of 1599 non-null float64 values in the dataset, crucial for data preprocessing.', 'Creation of two bins for wine quality classification, with 217 higher quality wines identified out of a total of 1599 wines.', 'The data is split into training and testing sets using train test split, with 20% of the data reserved for testing.', 'Training and prediction using a random forest classifier with 200 estimators.', 'The Random Forest Classifier achieved an overall 90% accuracy, with 92% precision for bad wine and 78% for good wine.', 'The Support Vector Model (SVM) attained an 86% accuracy, slightly lower than the Random Forest Classifier.', 'The Multi-layered Perceptron Classifier (MLPC) yielded an 88% accuracy, falling between the Random Forest Classifier and the SVM.', 'The accuracy scores of three commonly used classifiers in SKLearn are compared: random forest (90%), support vector machine (86%), and decision tree.', 'Discussion on mislabeling of good and bad wines and the selection of the best model for future predictions.', 'Exploration and comparison of common classifiers in SKLearn, including support vector machine, random forest, and neural network.']}, {'end': 33048.203, 'segs': [{'end': 30876.856, 'src': 'embed', 'start': 30849.244, 'weight': 8, 'content': [{'end': 30854.686, 'text': 'And we can come over here to the website, www.crummy.com slash software slash Beautiful Soup.', 'start': 30849.244, 'duration': 5.442}, {'end': 30856.107, 'text': 'You can actually read a little bit about it.', 'start': 30854.767, 'duration': 1.34}, {'end': 30857.488, 'text': 'Currently, Beautiful Soup.', 'start': 30856.267, 'duration': 1.221}, {'end': 30859.469, 'text': 'For is the current version.', 'start': 30857.868, 'duration': 1.601}, {'end': 30866.592, 'text': "If you don't remember the full website for it, you can always do what I do, which is go over and do a search for Beautiful Soup official site.", 'start': 30859.689, 'duration': 6.903}, {'end': 30872.394, 'text': "It almost always comes up right at the top, and you click on there, and it'll take you to the crummy.com software site for Beautiful Soup.", 'start': 30866.732, 'duration': 5.662}, {'end': 30876.856, 'text': "Now, we're going to use our whatever Python interface you want, IDE.", 'start': 30872.594, 'duration': 4.262}], 'summary': "Beautiful soup version 4 is available at www.crummy.com/software/beautifulsoup. it can be found by searching for 'beautiful soup official site'.", 'duration': 27.612, 'max_score': 30849.244, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s30849244.jpg'}, {'end': 30916.904, 'src': 'embed', 'start': 30887.144, 'weight': 0, 'content': [{'end': 30889.567, 'text': "Again, you might be using a different editor, and that's okay.", 'start': 30887.144, 'duration': 2.423}, {'end': 30891.809, 'text': 'You might be in PyCharm or something like that.', 'start': 30889.607, 'duration': 2.202}, {'end': 30892.71, 'text': "We don't need to do this.", 'start': 30891.849, 'duration': 0.861}, {'end': 30898.497, 'text': 'And JupyterLab is Jupyter Notebook with added tabs and some added features.', 'start': 30893.051, 'duration': 5.446}, {'end': 30904.639, 'text': "It's basically in beta testing, so it's got a few little glitches when you're saving things and moving between projects,", 'start': 30898.737, 'duration': 5.902}, {'end': 30909.101, 'text': "but for the most part it's a great upgrade to the Jupyter Notebook and you can use them together.", 'start': 30904.639, 'duration': 4.462}, {'end': 30914.603, 'text': "So you don't have to, I mean, it's built on Jupyter Notebook, so anything you do in Jupyter Notebook, you can open up in JupyterLab.", 'start': 30909.241, 'duration': 5.362}, {'end': 30916.904, 'text': 'And the first thing we need to do is we need to go ahead.', 'start': 30914.823, 'duration': 2.081}], 'summary': 'Jupyterlab is an upgrade to jupyter notebook, in beta testing with added tabs and features, can be used together.', 'duration': 29.76, 'max_score': 30887.144, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s30887144.jpg'}, {'end': 31002.859, 'src': 'embed', 'start': 30975.965, 'weight': 9, 'content': [{'end': 30981.049, 'text': "pip doesn't do as much as far as finding dependencies, but you know exactly what's on there with pip.", 'start': 30975.965, 'duration': 5.084}, {'end': 30987.172, 'text': "So if you're doing a huge distribution, you probably want to use your pip install so you can track what's going on there.", 'start': 30981.389, 'duration': 5.783}, {'end': 30993.175, 'text': "With the conda, I like to just let it take over since this isn't a major distributed package going out.", 'start': 30987.412, 'duration': 5.763}, {'end': 31000.498, 'text': "Another quick note between pip and conda is that if you start on a project in one of these environments and you're using pip in there, stick with pip.", 'start': 30993.355, 'duration': 7.143}, {'end': 31002.859, 'text': "If you're using Conda, stick with Conda.", 'start': 31000.758, 'duration': 2.101}], 'summary': 'Use pip for tracking dependencies in distribution, conda for project environment.', 'duration': 26.894, 'max_score': 30975.965, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s30975965.jpg'}, {'end': 31038.799, 'src': 'embed', 'start': 31009.082, 'weight': 10, 'content': [{'end': 31013.205, 'text': "So it's important to stay very consistent with your install on your environments.", 'start': 31009.082, 'duration': 4.123}, {'end': 31019.488, 'text': "And we'll also need to go ahead and install our numpy environment and our pandas on here.", 'start': 31013.625, 'duration': 5.863}, {'end': 31020.609, 'text': 'so go ahead and do that.', 'start': 31019.648, 'duration': 0.961}, {'end': 31027.673, 'text': "if you haven't added those packages in, go ahead and install those into your environment that you're working in and, of course, pandas is.", 'start': 31020.609, 'duration': 7.064}, {'end': 31032.275, 'text': "just simply install pandas and let's just install a couple more packages.", 'start': 31027.673, 'duration': 4.602}, {'end': 31038.799, 'text': "in this case, let's get our install, our map plot library, because we're going to plot at the end, since we're going to be collecting data,", 'start': 31032.275, 'duration': 6.524}], 'summary': 'Consistently install numpy, pandas, and matplotlib for data analysis.', 'duration': 29.717, 'max_score': 31009.082, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s31009082.jpg'}, {'end': 31147.18, 'src': 'embed', 'start': 31104.77, 'weight': 6, 'content': [{'end': 31108.032, 'text': 'One of the wonderful things about working in a browser window.', 'start': 31104.77, 'duration': 3.262}, {'end': 31109.673, 'text': 'Just do that control plus thing.', 'start': 31108.112, 'duration': 1.561}, {'end': 31112.534, 'text': 'The packages we talked about is pandas.', 'start': 31109.773, 'duration': 2.761}, {'end': 31114.856, 'text': "So we imported our pandas if you haven't already.", 'start': 31112.775, 'duration': 2.081}, {'end': 31116.036, 'text': "That's our data frame.", 'start': 31114.896, 'duration': 1.14}, {'end': 31123.34, 'text': "If you haven't done our pandas tutorial, definitely worthy of the time to go through there and understand pandas because it's such a powerful tool.", 'start': 31116.216, 'duration': 7.124}, {'end': 31127.924, 'text': 'This basically turns your your data into a spreadsheet data frame.', 'start': 31123.42, 'duration': 4.504}, {'end': 31133.01, 'text': 'our numpy is our number array, so it kind of works with pandas very closely.', 'start': 31127.924, 'duration': 5.086}, {'end': 31140.218, 'text': 'as far as manipulating data in arrays matplot, we want to go ahead and bring that in our plt so that we can plot the data at the end.', 'start': 31133.01, 'duration': 7.208}, {'end': 31147.18, 'text': 'And this line right here that says Matplotlib inline is for the Jupyter Notebook specifically.', 'start': 31140.518, 'duration': 6.662}], 'summary': 'Using pandas and numpy for data manipulation and visualization in a browser window.', 'duration': 42.41, 'max_score': 31104.77, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s31104770.jpg'}, {'end': 31250.84, 'src': 'embed', 'start': 31224.628, 'weight': 11, 'content': [{'end': 31228.73, 'text': "And if they don't have a direct API, that means we need to pull it from their website.", 'start': 31224.628, 'duration': 4.102}, {'end': 31236.094, 'text': "Some of these will have a download, although if you've ever done it, we have a download click and maybe you're paging through 100 websites.", 'start': 31229.07, 'duration': 7.024}, {'end': 31244.058, 'text': 'In one case, I was pulling all the different United States bills that are passed to track who voted on them for a project.', 'start': 31236.654, 'duration': 7.404}, {'end': 31250.2, 'text': "and you can imagine that there's, you know, hundreds and hundreds of those thousands of these documents that they voted on.", 'start': 31244.278, 'duration': 5.922}, {'end': 31250.84, 'text': 'who voted on?', 'start': 31250.2, 'duration': 0.64}], 'summary': 'Extracting data from websites, including thousands of us bills for tracking votes.', 'duration': 26.212, 'max_score': 31224.628, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s31224628.jpg'}, {'end': 31337.529, 'src': 'embed', 'start': 31310.16, 'weight': 15, 'content': [{'end': 31315.361, 'text': "This will be, and if you remember up here, here's our beautiful soup that we imported from the BS4.", 'start': 31310.16, 'duration': 5.201}, {'end': 31317.722, 'text': "And this is the package that we're working with.", 'start': 31315.641, 'duration': 2.081}, {'end': 31320.103, 'text': "And so we're going to do our beautiful soup on here.", 'start': 31317.962, 'duration': 2.141}, {'end': 31325.284, 'text': "And on this, we need to go ahead and send it our HTML so it knows what it's opening.", 'start': 31320.403, 'duration': 4.881}, {'end': 31329.206, 'text': 'And then the second part is we have to tell it how the format is coming in.', 'start': 31325.464, 'duration': 3.742}, {'end': 31334.708, 'text': 'And the most common one for your HTML polls is an LXML setup.', 'start': 31329.346, 'duration': 5.362}, {'end': 31337.529, 'text': "And so almost all of them you'll end up using the LXML.", 'start': 31334.928, 'duration': 2.601}], 'summary': 'Using bs4 for web scraping, lxml is commonly used for html parsing.', 'duration': 27.369, 'max_score': 31310.16, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s31310160.jpg'}, {'end': 31575.572, 'src': 'embed', 'start': 31547.382, 'weight': 16, 'content': [{'end': 31551.003, 'text': "Or you might be looking for the mail to tags, you know that's all the mail addresses.", 'start': 31547.382, 'duration': 3.621}, {'end': 31556.385, 'text': "But either way, you can easily find all the links in your HTML document that you're paging through.", 'start': 31551.203, 'duration': 5.182}, {'end': 31563.808, 'text': 'And of course, any packages that have evolved over time, you can also do link.get hreference.', 'start': 31556.505, 'duration': 7.303}, {'end': 31566.629, 'text': 'which should do the same thing as our other format.', 'start': 31564.008, 'duration': 2.621}, {'end': 31568.229, 'text': 'And you can see it certainly does.', 'start': 31566.829, 'duration': 1.4}, {'end': 31569.69, 'text': 'We get the same printout up here.', 'start': 31568.269, 'duration': 1.421}, {'end': 31573.591, 'text': 'In this particular case, we really want to get the data off the page.', 'start': 31569.87, 'duration': 3.721}, {'end': 31575.572, 'text': "So let's go ahead and do that.", 'start': 31574.152, 'duration': 1.42}], 'summary': 'Demonstrating how to find mail addresses and links in html document.', 'duration': 28.19, 'max_score': 31547.382, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s31547382.jpg'}, {'end': 31638.943, 'src': 'embed', 'start': 31607.929, 'weight': 17, 'content': [{'end': 31611.591, 'text': 'if you look at this, it just kind of goes on forever, But this is an array.', 'start': 31607.929, 'duration': 3.662}, {'end': 31613.192, 'text': 'Each row is considered an array.', 'start': 31611.711, 'duration': 1.481}, {'end': 31618.394, 'text': 'So because of that, we can do something simply as putting brackets and just print the first.', 'start': 31613.372, 'duration': 5.022}, {'end': 31620.095, 'text': "Let's do the first five rows.", 'start': 31618.414, 'duration': 1.681}, {'end': 31622.436, 'text': 'So from beginning to five.', 'start': 31620.435, 'duration': 2.001}, {'end': 31625.257, 'text': "And you can see here's our first five rows on here.", 'start': 31622.716, 'duration': 2.541}, {'end': 31628.778, 'text': "I sometimes like to just do, let's just do row zero.", 'start': 31625.457, 'duration': 3.321}, {'end': 31630.859, 'text': 'And we see that row zero is finishers.', 'start': 31628.798, 'duration': 2.061}, {'end': 31631.779, 'text': 'Finishers, 191.', 'start': 31631.159, 'duration': 0.62}, {'end': 31638.943, 'text': "And just out of curiosity, if that's zero, what's row one? Okay, so we're starting to see titles going across here.", 'start': 31631.779, 'duration': 7.164}], 'summary': 'Analyzing an array with 191 finishers, viewing first five rows of data.', 'duration': 31.014, 'max_score': 31607.929, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s31607929.jpg'}, {'end': 31693.903, 'src': 'embed', 'start': 31670.024, 'weight': 18, 'content': [{'end': 31676.949, 'text': "so the next thing we want to do with this, I'll go back up here and just edit the space we're in, so it starts to make a little bit more sense.", 'start': 31670.024, 'duration': 6.925}, {'end': 31677.769, 'text': 'keep it all together.', 'start': 31676.949, 'duration': 0.82}, {'end': 31684.034, 'text': "and so we want to do for each row, in all rows, we're looking at what information are we looking at?", 'start': 31677.769, 'duration': 6.265}, {'end': 31686.296, 'text': 'well, we have our th up here.', 'start': 31684.034, 'duration': 2.262}, {'end': 31693.903, 'text': "that's the header, our td down here, which looks like the individual information, and We really are looking for the actual data.", 'start': 31686.296, 'duration': 7.607}], 'summary': 'Editing space for each row to organize the header and data, aiming for clarity and coherence.', 'duration': 23.879, 'max_score': 31670.024, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s31670024.jpg'}, {'end': 31753.227, 'src': 'embed', 'start': 31724.886, 'weight': 19, 'content': [{'end': 31728.508, 'text': "If you notice, I changed the indent, so I'm just going to print row list.", 'start': 31724.886, 'duration': 3.622}, {'end': 31733.99, 'text': 'What this does is the last value to go into row list, our last row is going to print now.', 'start': 31728.688, 'duration': 5.302}, {'end': 31737.193, 'text': "And, of course, make sure you have an underscore instead of a period when you're typing.", 'start': 31734.23, 'duration': 2.963}, {'end': 31739.995, 'text': 'So row.find underscore all td.', 'start': 31737.313, 'duration': 2.682}, {'end': 31744.359, 'text': 'And if we print the last row, you can see I have all the data coming across here.', 'start': 31740.155, 'duration': 4.204}, {'end': 31749.023, 'text': 'We have our 191, our 1216, Zuma, Okchoa.', 'start': 31744.479, 'duration': 4.544}, {'end': 31750.164, 'text': 'I hope I said that right.', 'start': 31749.203, 'duration': 0.961}, {'end': 31753.227, 'text': "Female I believe that's age 40 and so on.", 'start': 31750.324, 'duration': 2.903}], 'summary': 'Using python, the script prints the last row list with data including 191, 1216, zuma, okchoa, and a female of age 40.', 'duration': 28.341, 'max_score': 31724.886, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s31724886.jpg'}, {'end': 31839.397, 'src': 'embed', 'start': 31808.633, 'weight': 20, 'content': [{'end': 31810.914, 'text': 'And we know that each cell generates a text.', 'start': 31808.633, 'duration': 2.281}, {'end': 31813.696, 'text': 'And so what we want to do is I want to take my data row.', 'start': 31811.154, 'duration': 2.542}, {'end': 31815.136, 'text': "Let's just replace that.", 'start': 31813.716, 'duration': 1.42}, {'end': 31819.799, 'text': "Let's take our data row and let's append our cell.text.", 'start': 31815.436, 'duration': 4.363}, {'end': 31823.961, 'text': "So I'm going to add the each row is going to be a row of the different text on here.", 'start': 31820.019, 'duration': 3.942}, {'end': 31829.827, 'text': 'And then once I create each row, I want my data, which is going to be everything, to append each row.', 'start': 31824.261, 'duration': 5.566}, {'end': 31830.988, 'text': "And here's our data row.", 'start': 31830.047, 'duration': 0.941}, {'end': 31834.932, 'text': "And then if we go ahead and come down here, and let's just print data.", 'start': 31831.128, 'duration': 3.804}, {'end': 31839.397, 'text': "Now if we were lurking with large data, we'd be very careful about just throwing all our data on the page.", 'start': 31835.052, 'duration': 4.345}], 'summary': 'Appending cell text to data rows for generating large data sets.', 'duration': 30.764, 'max_score': 31808.633, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s31808633.jpg'}, {'end': 32018.859, 'src': 'embed', 'start': 31988.828, 'weight': 14, 'content': [{'end': 31989.789, 'text': "And that's standard.", 'start': 31988.828, 'duration': 0.961}, {'end': 31993.971, 'text': "You'll see that in most code examples where they import pandas as PD.", 'start': 31989.809, 'duration': 4.162}, {'end': 31995.552, 'text': 'And it is capital D.', 'start': 31994.591, 'duration': 0.961}, {'end': 31998.033, 'text': 'capital F for data frame.', 'start': 31996.252, 'duration': 1.781}, {'end': 32000.713, 'text': "And we're just going to bring in our data.", 'start': 31998.113, 'duration': 2.6}, {'end': 32002.054, 'text': "That's what we called it on here.", 'start': 32000.734, 'duration': 1.32}, {'end': 32004.615, 'text': "And let's take this and we'll print.", 'start': 32002.434, 'duration': 2.181}, {'end': 32008.696, 'text': "Now when you're working with data frames, you're usually talking large amounts of data.", 'start': 32004.855, 'duration': 3.841}, {'end': 32011.697, 'text': 'And so you almost never want to print the whole data frame out.', 'start': 32008.816, 'duration': 2.881}, {'end': 32014.898, 'text': "We're going to go ahead and do that anyway, just so we can see what that looks like.", 'start': 32012.117, 'duration': 2.781}, {'end': 32018.859, 'text': 'And you can see in here it brings in our data frame coming in here.', 'start': 32015.118, 'duration': 3.741}], 'summary': 'Importing and printing data using pandas for data frames.', 'duration': 30.031, 'max_score': 31988.828, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s31988828.jpg'}, {'end': 32087.625, 'src': 'embed', 'start': 32060.447, 'weight': 4, 'content': [{'end': 32065.67, 'text': 'And so to fix this, I want to go ahead and just change it up here on the actual data pull-in.', 'start': 32060.447, 'duration': 5.223}, {'end': 32067.091, 'text': "We don't need that information.", 'start': 32065.81, 'duration': 1.281}, {'end': 32069.773, 'text': "So I'll rerun it, reload our data from 4 on.", 'start': 32067.111, 'duration': 2.662}, {'end': 32074.796, 'text': 'And then when I run this, we see we have Max Randolph is right at the top of the list, like he should be.', 'start': 32070.053, 'duration': 4.743}, {'end': 32076.677, 'text': 'And we have all the data going down.', 'start': 32075.116, 'duration': 1.561}, {'end': 32080.503, 'text': "Now with the data frame, remember I said we don't usually print the whole data frame.", 'start': 32077.082, 'duration': 3.421}, {'end': 32082.744, 'text': "We'll go ahead and do df.head.", 'start': 32080.683, 'duration': 2.061}, {'end': 32084.684, 'text': 'And this prints the first five rows.', 'start': 32083.084, 'duration': 1.6}, {'end': 32087.625, 'text': 'And you can see that we have 13 columns.', 'start': 32084.924, 'duration': 2.701}], 'summary': 'Data was reloaded from row 4, showing max randolph at the top, with 13 columns.', 'duration': 27.178, 'max_score': 32060.447, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s32060447.jpg'}, {'end': 32450.941, 'src': 'embed', 'start': 32423.476, 'weight': 1, 'content': [{'end': 32430.945, 'text': "So now we've got to this point where we have all our different columns, we have our different data, and at this point maybe you're asking,", 'start': 32423.476, 'duration': 7.469}, {'end': 32438.692, 'text': 'or maybe the shareholder of the company is asking hey, can we look at the based on the chip time?', 'start': 32430.945, 'duration': 7.747}, {'end': 32439.792, 'text': "here's our chip time.", 'start': 32438.692, 'duration': 1.1}, {'end': 32441.794, 'text': 'can we plot that versus gender?', 'start': 32439.792, 'duration': 2.002}, {'end': 32444.536, 'text': 'How does gender versus chip time compare?', 'start': 32442.014, 'duration': 2.522}, {'end': 32445.437, 'text': 'And so we can do that.', 'start': 32444.656, 'duration': 0.781}, {'end': 32450.941, 'text': "we can take that and the first thing we look at is we say hey well, chip time came in as a string and that's going to be an issue.", 'start': 32445.437, 'duration': 5.504}], 'summary': 'Analyzing data for chip time and gender comparison.', 'duration': 27.465, 'max_score': 32423.476, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s32423476.jpg'}], 'start': 30812.98, 'title': 'Web scraping and data analysis with beautiful soup and pandas', 'summary': 'Covers web scraping with beautiful soup in python, installation process, data extraction from websites, data frame analysis with pandas, and data cleaning and analysis, enabling data scientists to extract and analyze website data efficiently using beautiful soup and pandas libraries in a jupyterlab environment.', 'chapters': [{'end': 30916.904, 'start': 30812.98, 'title': 'Web scraping with beautiful soup', 'summary': 'Highlights the use of web scraping with beautiful soup in python, including the process of accessing website data and the benefits for data scientists, with a mention of using jupyterlab for the task.', 'duration': 103.924, 'highlights': ['The process of web scraping using Beautiful Soup in Python is described, with emphasis on the need for data scientists to extract information from websites without direct APIs.', 'JupyterLab as an IDE for web scraping is mentioned, with the advantages of using it and the mention of some glitches in the beta version.', 'The unsuccessful use of a new wine and the website www.crummy.com/software/BeautifulSoup are briefly mentioned but are less relevant to the main topic.']}, {'end': 31259.383, 'start': 30916.904, 'title': 'Installing beautiful soup 4 and required packages', 'summary': 'Explains the process of installing beautiful soup 4 using conda install, the importance of consistency in package management, and the import of necessary packages for web scraping in a jupyterlab environment.', 'duration': 342.479, 'highlights': ['The chapter explains the process of installing Beautiful Soup 4 using conda install, emphasizing the simplicity and dependency management of conda over pip. (e.g. conda finds all dependencies, while pip requires manual tracking)', 'The importance of consistency in package management between pip and conda is highlighted to avoid conflicts and overwritten packages. (e.g. sticking with either pip or conda for a specific project)', 'The import of necessary packages for web scraping in a JupyterLab environment is demonstrated, including pandas for dataframes, numpy for numerical arrays, matplot for data visualization, urllib.request for website access, beautifulsoup4 for web scraping, and re for regular expression manipulation. (e.g. pandas turns data into spreadsheet data frames, numpy works closely with pandas for array manipulation, matplot is used for data plotting, and re is utilized for regular expression manipulation)']}, {'end': 31568.229, 'start': 31259.383, 'title': 'Web scraping with beautiful soup', 'summary': 'Explains how to use beautiful soup to extract information from a website, including importing modules, setting up the url connection, creating a beautiful soup object, and extracting specific information like the title and links from the website.', 'duration': 308.846, 'highlights': ["It's important to automate the process of downloading HTML files, and the use of Beautiful Soup helps in extracting information from a website. Automating the process of downloading HTML files is essential to avoid manual downloading one at a time, and Beautiful Soup facilitates the extraction of information from a website.", 'Setting up the URL connection and creating a Beautiful Soup object are crucial steps in the web scraping process. Setting up the URL connection and creating a Beautiful Soup object are fundamental steps in the web scraping process, enabling the extraction of relevant information from the website.', 'Extracting specific information such as the title and links from the website can be achieved using Beautiful Soup. Beautiful Soup enables the extraction of specific information from a website, such as the title and links, providing valuable data for analysis and processing.']}, {'end': 32076.677, 'start': 31568.269, 'title': 'Extracting data from web page', 'summary': "Demonstrates extracting data from a web page using python's beautifulsoup library, iterating through rows, and creating a dataframe with the data, resulting in a messy initial dataframe that is then cleaned.", 'duration': 508.408, 'highlights': ["Demonstrating extracting data using Python's BeautifulSoup library The transcript demonstrates the process of extracting data from a web page using Python's BeautifulSoup library.", 'Iterating through rows to extract specific data and display it The chapter illustrates the iteration through rows to extract specific data and display it, such as printing the first five rows and individual rows.', 'Creating a messy initial dataframe and then cleaning it The process results in creating a messy initial dataframe and then cleaning it by removing unwanted rows, ultimately displaying a clean dataframe.']}, {'end': 32387.723, 'start': 32077.082, 'title': 'Data frame analysis with pandas', 'summary': 'Demonstrates how to analyze a data frame using pandas, including printing the first five rows, examining the number of rows and columns, setting column headers, checking data types, and dropping null values.', 'duration': 310.641, 'highlights': ['Printing the first five rows of the data frame using df.head. Demonstrates how to display the initial data in the data frame, highlighting the first five rows and 13 columns.', 'Examining the number of rows and columns in the data frame, which contains 190 rows and 13 columns. Reveals the total number of rows and columns in the data frame, facilitating a comprehensive overview of the dataset size.', 'Setting column headers for the data frame using Beautiful Soup and Pandas, enabling clear identification of the data attributes. Illustrates the process of assigning descriptive column headers to enhance data interpretation and analysis.', 'Checking the data types of the columns to identify non-null objects and string variables within the data frame. Provides insights into the data types present in the columns, highlighting the presence of non-null objects and string variables.', "Dropping null values from the data frame using the 'dropna' function to ensure data cleanliness and integrity. Demonstrates the process of removing null values from the data frame to maintain data integrity and accuracy."]}, {'end': 33048.203, 'start': 32388.143, 'title': 'Data cleaning and analysis', 'summary': 'Discusses the process of cleaning and analyzing data, including checking for null and infinite values, converting data types, plotting data, and descriptive statistics using pandas and matplotlib, to ultimately derive meaningful insights from the data.', 'duration': 660.06, 'highlights': ['Describing and testing for null values in the data using Pandas, with 191 and 14 null values found in the dataset The speaker discusses the process of checking for null values in the dataset and finds 191 and 14 null values, ensuring data integrity and quality.', "Converting the 'chip time' column from a string to a numerical format, and then further converting it from seconds to minutes for ease of analysis The speaker details the process of converting the 'chip time' column from a string to numerical format and then to minutes, facilitating easier analysis of the data.", 'Plotting a bar graph to compare chip time in minutes between genders, revealing insights about average running times for males and females The speaker explains the process of using Matplotlib to create a bar graph, comparing chip time in minutes between genders, providing insights into the average running times for males and females.', "Using descriptive statistics to analyze the 'chip time in minutes' data, providing insights such as average, standard deviation, minimum, and maximum values The speaker demonstrates the use of Pandas to derive descriptive statistics from the 'chip time in minutes' data, offering insights into the distribution and central tendency of the data.", 'Creating a box plot to visualize the distribution of chip time in minutes grouped by gender, facilitating the comparison of running times between different genders The speaker illustrates the creation of a box plot using Matplotlib, allowing for the visualization and comparison of chip time in minutes between different genders.', "Converting the 'age' column to numeric format, handling null values, and rounding off the data for further analysis The speaker describes the process of converting the 'age' column to numeric format, handling null values, and rounding off the data, ensuring data consistency and accuracy for analysis."]}], 'duration': 2235.223, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s30812980.jpg', 'highlights': ['Data scientists need to extract information from websites without direct APIs', 'JupyterLab is emphasized as an IDE for web scraping', 'Installing Beautiful Soup 4 using conda install is highlighted for simplicity and dependency management', 'Importance of consistency in package management between pip and conda is emphasized', 'Automating the process of downloading HTML files is essential to avoid manual downloading', 'Setting up the URL connection and creating a Beautiful Soup object are crucial steps in web scraping', 'Beautiful Soup enables the extraction of specific information from a website', "Demonstrates the process of extracting data from a web page using Python's BeautifulSoup library", 'Illustrates the iteration through rows to extract specific data and display it', 'Results in creating a messy initial dataframe and then cleaning it by removing unwanted rows', 'Demonstrates how to display the initial data in the data frame, highlighting the first five rows and 13 columns', 'Reveals the total number of rows and columns in the data frame', 'Illustrates the process of assigning descriptive column headers to enhance data interpretation and analysis', 'Provides insights into the data types present in the columns', 'Demonstrates the process of removing null values from the data frame', 'Checking for null values in the dataset and finding 191 and 14 null values', "Details the process of converting the 'chip time' column from a string to numerical format and then to minutes", 'Explains the process of using Matplotlib to create a bar graph, comparing chip time in minutes between genders', "Demonstrates the use of Pandas to derive descriptive statistics from the 'chip time in minutes' data", 'Illustrates the creation of a box plot using Matplotlib', "Describes the process of converting the 'age' column to numeric format, handling null values, and rounding off the data"]}, {'end': 33985.767, 'segs': [{'end': 33077.216, 'src': 'embed', 'start': 33048.724, 'weight': 6, 'content': [{'end': 33050.786, 'text': "The age, and it's going to be age i.", 'start': 33048.724, 'duration': 2.062}, {'end': 33052.267, 'text': "And then we've dropped all our null values.", 'start': 33050.786, 'duration': 1.481}, {'end': 33054.849, 'text': "That way we're not going to get any errors when we try to plot a null value.", 'start': 33052.307, 'duration': 2.542}, {'end': 33060.271, 'text': "And it also makes sure that data by deleting out the rows, because that's what this does.", 'start': 33055.029, 'duration': 5.242}, {'end': 33062.932, 'text': 'it automatically does axis 0, which is your rows.', 'start': 33060.271, 'duration': 2.661}, {'end': 33064.052, 'text': 'axis 1 is your columns.', 'start': 33062.932, 'duration': 1.12}, {'end': 33067.814, 'text': 'By doing this, it automatically removes all the rows with null values.', 'start': 33064.352, 'duration': 3.462}, {'end': 33069.574, 'text': 'So it just cleans out the rows.', 'start': 33068.314, 'duration': 1.26}, {'end': 33075.036, 'text': 'And then when we go ahead and plot this, we see we have a nice clean data, and we have age all the way up to 70.', 'start': 33069.894, 'duration': 5.142}, {'end': 33077.216, 'text': 'So we have our chip time set.', 'start': 33075.036, 'duration': 2.18}], 'summary': 'Null values removed, resulting in clean data with age up to 70 for plotting.', 'duration': 28.492, 'max_score': 33048.724, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s33048724.jpg'}, {'end': 33208.689, 'src': 'embed', 'start': 33179.512, 'weight': 4, 'content': [{'end': 33184.536, 'text': "So if people want to learn from your code, they want to view your code, it's necessary that they understand this code.", 'start': 33179.512, 'duration': 5.024}, {'end': 33188.138, 'text': 'And of course there are few guidelines to follow which makes your code more readable.', 'start': 33184.616, 'duration': 3.522}, {'end': 33193.141, 'text': 'The most important one being you follow the PEP 8 style guideline in case of Python.', 'start': 33188.338, 'duration': 4.803}, {'end': 33198.684, 'text': 'So the PEP 8 style guideline is basically some conventions that you use and that mainly talks about indentation.', 'start': 33193.22, 'duration': 5.464}, {'end': 33202.566, 'text': 'So in case of PEP 8 you have a 4 space indentation.', 'start': 33198.904, 'duration': 3.662}, {'end': 33208.689, 'text': "Tabs and spaces that's maximum line length which in case of PEP 8 is 79 characters per line.", 'start': 33202.646, 'duration': 6.043}], 'summary': 'To make code readable, follow pep 8 style guide with 4 space indentation and 79 characters per line.', 'duration': 29.177, 'max_score': 33179.512, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s33179512.jpg'}, {'end': 33337.966, 'src': 'embed', 'start': 33308.749, 'weight': 0, 'content': [{'end': 33312.451, 'text': 'now these are some of the people who have great github repositories.', 'start': 33308.749, 'duration': 3.702}, {'end': 33314.714, 'text': 'you can definitely learn a lot from them.', 'start': 33312.451, 'duration': 2.263}, {'end': 33319.998, 'text': 'tip number five read books on python coding, So you might know already quite a bit of Python.', 'start': 33314.714, 'duration': 5.284}, {'end': 33325.419, 'text': "In fact, if you're looking for a Python developer job, there's a good chance that you are an advanced coder.", 'start': 33320.158, 'duration': 5.261}, {'end': 33327.14, 'text': 'But nothing beats books.', 'start': 33325.578, 'duration': 1.562}, {'end': 33330.801, 'text': 'Here are some of the very popular and well-known books for Python.', 'start': 33327.339, 'duration': 3.462}, {'end': 33334.442, 'text': 'Fluent Python, Automate the Boring Stuff with Python and so on.', 'start': 33330.941, 'duration': 3.501}, {'end': 33337.966, 'text': 'Now Fluent Python is a great book to start with.', 'start': 33334.661, 'duration': 3.305}], 'summary': 'Learn from github repositories and read books for advanced python coding skills.', 'duration': 29.217, 'max_score': 33308.749, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s33308749.jpg'}, {'end': 33510.909, 'src': 'embed', 'start': 33485.868, 'weight': 3, 'content': [{'end': 33491.11, 'text': 'So some of the popular ones include pipenv which is the python development workflow for humans.', 'start': 33485.868, 'duration': 5.242}, {'end': 33496.955, 'text': "There's also chatistics where you can convert your messenger and hangout chat logs into data frames.", 'start': 33491.331, 'duration': 5.624}, {'end': 33501.417, 'text': 'Then you can solve your traveling salesman problems using self organizing maps.', 'start': 33497.114, 'duration': 4.303}, {'end': 33504.682, 'text': "And there's also a Python to BPF converter.", 'start': 33501.737, 'duration': 2.945}, {'end': 33507.425, 'text': 'So these are great places to make your contributions.', 'start': 33504.862, 'duration': 2.563}, {'end': 33510.909, 'text': 'In fact, we have the links for some of these in the description below.', 'start': 33507.625, 'duration': 3.284}], 'summary': 'Popular tools for python development include pipenv, chatistics, self organizing maps, and a python to bpf converter.', 'duration': 25.041, 'max_score': 33485.868, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s33485868.jpg'}, {'end': 33575.133, 'src': 'embed', 'start': 33546.635, 'weight': 1, 'content': [{'end': 33549.819, 'text': 'what kind of a coder you are and if you have done everything right.', 'start': 33546.635, 'duration': 3.184}, {'end': 33557.747, 'text': 'this could create a great impression on the recruiters and if you have done everything right, this will create a great mark on the recruiters.', 'start': 33549.819, 'duration': 7.928}, {'end': 33561.728, 'text': "So here's a screenshot on Ned Batchelder's blog on Python.", 'start': 33558.007, 'duration': 3.721}, {'end': 33565.81, 'text': "It'll give you a good idea as to how to create a blog and how to go about it.", 'start': 33561.888, 'duration': 3.922}, {'end': 33566.97, 'text': 'So please check that out.', 'start': 33565.85, 'duration': 1.12}, {'end': 33570.091, 'text': "So here's a list of all his blog posts.", 'start': 33567.19, 'duration': 2.901}, {'end': 33575.133, 'text': 'He has 227 blogs just for Python and he writes on various topics.', 'start': 33570.212, 'duration': 4.921}], 'summary': "Ned batchelder's blog on python offers 227 posts on various topics.", 'duration': 28.498, 'max_score': 33546.635, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s33546635.jpg'}], 'start': 33048.724, 'title': 'Python and data visualization', 'summary': 'Covers data cleaning to create a dataset with age values up to 70, tips for landing a python developer job, and python concepts including shallow copy, deep copy, multi-threading, django architecture, numpy array advantages, and pickling and unpickling.', 'chapters': [{'end': 33088.48, 'start': 33048.724, 'title': 'Data cleaning and visualization of age data', 'summary': 'Discusses cleaning out null values from the age data, resulting in a clean dataset with age values up to 70, suitable for creating a clear and presentable plot for display to stakeholders.', 'duration': 39.756, 'highlights': ['The process involves dropping null values from the age data, resulting in a clean dataset with age values up to 70, which is essential for creating a clear and presentable plot for display to stakeholders.', 'The cleaned data enables the creation of a plot showing age all the way up to 70, providing a clear visualization of the dataset for stakeholders or display purposes.']}, {'end': 33685.716, 'start': 33088.519, 'title': 'Tips for landing a python developer job', 'summary': 'Provides 12 tips on how to land a job as a python developer, including creating a github repository, ensuring readable code following pep 8 guidelines, documenting projects, learning from popular github personalities, reading python books, mastering python libraries, applying python skills in ai and machine learning, taking freelancing projects, making open source contributions, starting a blog, following a daily practice schedule, and keeping the resume updated on job portals.', 'duration': 597.197, 'highlights': ['Create a GitHub repository and add all Python codes, making modifications to show progress, which becomes a resume for recruiters. Creating a GitHub repository and showcasing Python codes, including making modifications to show progress, serves as a resume for recruiters.', 'Ensure code readability by following PEP 8 guidelines and creating good documentation with a readme file in the GitHub repository. Ensuring code readability by following PEP 8 guidelines and creating good documentation with a readme file in the GitHub repository.', 'Learn from popular GitHub personalities like Raymond Hettinger, Kenneth Reed, and others to develop coding skills. Learning from popular GitHub personalities like Raymond Hettinger, Kenneth Reed, and others to develop coding skills.', 'Read books on Python coding to strengthen Python concepts and portray skills effectively. Reading books on Python coding to strengthen Python concepts and portray skills effectively.', 'Master Python libraries like NumPy, SciPy, Matplotlib, and TensorFlow, and showcase projects on GitHub. Mastering Python libraries like NumPy, SciPy, Matplotlib, and TensorFlow, and showcasing projects on GitHub.']}, {'end': 33985.767, 'start': 33686.116, 'title': 'Python concepts and django architecture', 'summary': 'Covers concepts like shallow copy and deep copy, multi-threading in python, django architecture, advantages of numpy array over nested list, and pickling and unpickling in python.', 'duration': 299.651, 'highlights': ['Multi-threading in Python is achieved through context switching, while multiprocessing opens up multiple processes across multiple threads, making multi-threading faster. Multi-threading vs multiprocessing in Python, Python global interpreter lock, performance comparison', "Numpy arrays are much faster than lists due to their C implementation, as Python must check the data type of each element every time it uses a list. Performance comparison between numpy arrays and lists, numpy's C implementation, additional functionalities of numpy", 'Shallow copy creates a different object and populates it with the references of the child objects within the original object, reflecting changes in the original object in the copy. Difference between shallow copy and deep copy, impact of changes in the original object on shallow copy', 'Django architecture consists of models, templates, views, and URLs, enabling the separation of front-end and back-end, allowing flexibility in updating underlying information. Components of Django architecture, separation of front-end and back-end, flexibility in updating underlying information', 'Pickling is the process of converting a Python object hierarchy to a byte stream, while unpickling is the process of converting a byte stream to a Python object hierarchy. Definition of pickling and unpickling, Python object serialization and deserialization']}], 'duration': 937.043, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s33048724.jpg', 'highlights': ['The process involves dropping null values from the age data, resulting in a clean dataset with age values up to 70, essential for creating a clear and presentable plot for display to stakeholders.', 'Create a GitHub repository and add all Python codes, making modifications to show progress, which becomes a resume for recruiters.', 'Ensure code readability by following PEP 8 guidelines and creating good documentation with a readme file in the GitHub repository.', 'Multi-threading in Python is achieved through context switching, while multiprocessing opens up multiple processes across multiple threads, making multi-threading faster.', 'Numpy arrays are much faster than lists due to their C implementation, as Python must check the data type of each element every time it uses a list.', 'Shallow copy creates a different object and populates it with the references of the child objects within the original object, reflecting changes in the original object in the copy.', 'Django architecture consists of models, templates, views, and URLs, enabling the separation of front-end and back-end, allowing flexibility in updating underlying information.', 'Pickling is the process of converting a Python object hierarchy to a byte stream, while unpickling is the process of converting a byte stream to a Python object hierarchy.']}, {'end': 35839.077, 'segs': [{'end': 34178.076, 'src': 'embed', 'start': 34147.639, 'weight': 6, 'content': [{'end': 34149.56, 'text': 'And you have the double equals in Python, of course.', 'start': 34147.639, 'duration': 1.921}, {'end': 34155.322, 'text': 'And you can do list1 is list2, where list2 equals 1, 2, 3 is false.', 'start': 34149.7, 'duration': 5.622}, {'end': 34158.322, 'text': 'List2 is not the brackets 1, 2, 3.', 'start': 34155.662, 'duration': 2.66}, {'end': 34159.803, 'text': "It equals it, but it's not the brackets.", 'start': 34158.322, 'duration': 1.481}, {'end': 34165.867, 'text': 'And if we do list3 equals list1, then list1 is list3 equals true.', 'start': 34160.123, 'duration': 5.744}, {'end': 34166.968, 'text': 'Number 11.', 'start': 34166.107, 'duration': 0.861}, {'end': 34174.193, 'text': "What is the purpose of pass statement? The pass statement is used when there's a syntactic but not an operational requirement.", 'start': 34166.968, 'duration': 7.225}, {'end': 34178.076, 'text': 'For example, the program below prints a string ignoring the spaces.', 'start': 34174.613, 'duration': 3.463}], 'summary': 'Python comparison operations and the use of pass statement explained.', 'duration': 30.437, 'max_score': 34147.639, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s34147639.jpg'}, {'end': 34233.217, 'src': 'embed', 'start': 34205.87, 'weight': 4, 'content': [{'end': 34211.612, 'text': 'You could do function, whatever your def function name, brackets, colon, pass.', 'start': 34205.87, 'duration': 5.742}, {'end': 34214.894, 'text': "So it goes into the function and does nothing, but it's a placeholder.", 'start': 34211.973, 'duration': 2.921}, {'end': 34216.242, 'text': 'Number 12.', 'start': 34215.242, 'duration': 1}, {'end': 34219.784, 'text': 'How will you check all the characters in a string are alphanumeric?', 'start': 34216.242, 'duration': 3.542}, {'end': 34227.187, 'text': 'Python has an inbuilt method, isAllNumber which returns true if all characters in the string are alphanumeric.', 'start': 34220.044, 'duration': 7.143}, {'end': 34233.217, 'text': 'And so you can see here, A, B, C, D, 1, 2, 3, is all number, output equals true.', 'start': 34227.591, 'duration': 5.626}], 'summary': "Python's isallnumber method checks if all characters in a string are alphanumeric, 12 characters passed.", 'duration': 27.347, 'max_score': 34205.87, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s34205870.jpg'}, {'end': 34369.213, 'src': 'embed', 'start': 34320.541, 'weight': 3, 'content': [{'end': 34321.663, 'text': 'Same thing with strings.', 'start': 34320.541, 'duration': 1.122}, {'end': 34322.764, 'text': 'We have simply learn.', 'start': 34321.803, 'duration': 0.961}, {'end': 34325.126, 'text': 'S1 plus S2 equals simply learn.', 'start': 34323.084, 'duration': 2.042}, {'end': 34326.718, 'text': 'Number 14.', 'start': 34325.406, 'duration': 1.312}, {'end': 34335.566, 'text': 'How will you remove all leading whitespace in a string? Python provides the inbuilt function lstrip to remove all leading access from a string.', 'start': 34326.718, 'duration': 8.848}, {'end': 34340.451, 'text': 'And you can see here, space, space, space, python.lstrip, leading strip, python.', 'start': 34335.646, 'duration': 4.805}, {'end': 34343.754, 'text': 'And you can also do strip, which leaves leading and ending.', 'start': 34340.651, 'duration': 3.103}, {'end': 34345.556, 'text': "Of course, there's also the ending set.", 'start': 34343.774, 'duration': 1.782}, {'end': 34347.317, 'text': 'Number 15.', 'start': 34345.916, 'duration': 1.401}, {'end': 34351.34, 'text': 'How will you replace all occurrences of a substring with a new string?', 'start': 34347.317, 'duration': 4.023}, {'end': 34356.024, 'text': 'The replace function can be used with strings for replacing a substring with a given string.', 'start': 34351.62, 'duration': 4.404}, {'end': 34359.707, 'text': 'Syntax String.replace old, new, count.', 'start': 34356.224, 'duration': 3.483}, {'end': 34363.469, 'text': 'Replace returns a new string without modifying the original string.', 'start': 34360.167, 'duration': 3.302}, {'end': 34365.531, 'text': 'Hey John, how are you John? Replace John.', 'start': 34363.61, 'duration': 1.921}, {'end': 34369.213, 'text': 'with capital J-O-H-N, 1.', 'start': 34367.072, 'duration': 2.141}], 'summary': 'In python, use lstrip to remove leading whitespace and replace to replace substrings.', 'duration': 48.672, 'max_score': 34320.541, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s34320541.jpg'}, {'end': 34452.925, 'src': 'embed', 'start': 34407.934, 'weight': 10, 'content': [{'end': 34412.956, 'text': "Where if we do remove B from the list and we have an A, B, B, D, it's only going to remove the first B.", 'start': 34407.934, 'duration': 5.022}, {'end': 34417.859, 'text': 'Number 17, how to display the contents of text file in reverse order.', 'start': 34412.956, 'duration': 4.903}, {'end': 34419.86, 'text': 'Open the file using the open function.', 'start': 34418.159, 'duration': 1.701}, {'end': 34422.402, 'text': 'Store the contents of the file into a list.', 'start': 34420.16, 'duration': 2.242}, {'end': 34424.204, 'text': 'Reverse the contents of the list.', 'start': 34422.763, 'duration': 1.441}, {'end': 34426.626, 'text': 'Run a for loop to iterate through the list.', 'start': 34424.564, 'duration': 2.062}, {'end': 34428.228, 'text': 'Number 18.', 'start': 34427.107, 'duration': 1.121}, {'end': 34431.831, 'text': 'Differential between append and extend.', 'start': 34428.228, 'duration': 3.603}, {'end': 34434.534, 'text': 'Append adds an element to the end of the list.', 'start': 34432.272, 'duration': 2.262}, {'end': 34440.514, 'text': 'You can see right here we have a list 1, 2, 3, 4 and we append 4 and we end up with an output 1, 2, 3, 4.', 'start': 34434.874, 'duration': 5.64}, {'end': 34445.14, 'text': 'And extend adds an element from an interval to the end of the list.', 'start': 34440.515, 'duration': 4.625}, {'end': 34450.466, 'text': 'And we have here list equals 1, 2, 3, list dot extend 4, 5, 6.', 'start': 34445.581, 'duration': 4.885}, {'end': 34452.925, 'text': 'Output is 1, 2, 3, 4, 5, 6.', 'start': 34450.466, 'duration': 2.459}], 'summary': 'Explains list operations and file handling in python with examples.', 'duration': 44.991, 'max_score': 34407.934, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s34407934.jpg'}, {'end': 34634.35, 'src': 'embed', 'start': 34607.179, 'weight': 8, 'content': [{'end': 34611.08, 'text': 'Output, accessing docstring method one, this function adds two numbers.', 'start': 34607.179, 'duration': 3.901}, {'end': 34615.461, 'text': 'Accessing docstring method two, help on function add in model main.', 'start': 34611.44, 'duration': 4.021}, {'end': 34617.321, 'text': 'This function adds two numbers.', 'start': 34615.781, 'duration': 1.54}, {'end': 34622.202, 'text': 'And so you can see the code down here has two very different end values.', 'start': 34617.621, 'duration': 4.581}, {'end': 34625.043, 'text': 'The second one is basically a help menu.', 'start': 34622.622, 'duration': 2.421}, {'end': 34626.043, 'text': "There's our help menu.", 'start': 34625.223, 'duration': 0.82}, {'end': 34627.684, 'text': 'Number 22.', 'start': 34626.463, 'duration': 1.221}, {'end': 34634.35, 'text': 'How do you use print without the new line? The solution to this depends on the Python version you are using.', 'start': 34627.684, 'duration': 6.666}], 'summary': 'Two docstring methods, add function for adding two numbers, and print usage in python version.', 'duration': 27.171, 'max_score': 34607.179, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s34607179.jpg'}, {'end': 34727.641, 'src': 'embed', 'start': 34669.613, 'weight': 0, 'content': [{'end': 34673.415, 'text': 'The character based on which the string is to split by default is space.', 'start': 34669.613, 'duration': 3.802}, {'end': 34675.095, 'text': 'So here we have an example.', 'start': 34673.875, 'duration': 1.22}, {'end': 34677.416, 'text': 'We have a variable red, blue, green, orange.', 'start': 34675.235, 'duration': 2.181}, {'end': 34679.397, 'text': 'And we want to split it by commas.', 'start': 34677.676, 'duration': 1.721}, {'end': 34681.598, 'text': 'And we only want to do the first two.', 'start': 34679.697, 'duration': 1.901}, {'end': 34684.819, 'text': "So if we print the list, now you'll find it has red, blue.", 'start': 34681.818, 'duration': 3.001}, {'end': 34687.219, 'text': 'It only split it the first two times.', 'start': 34685.039, 'duration': 2.18}, {'end': 34690.08, 'text': 'And it gets to the third one and just groups them all together, green and orange.', 'start': 34687.419, 'duration': 2.661}, {'end': 34692.281, 'text': "If you leave the two off, it'll split the whole thing.", 'start': 34690.38, 'duration': 1.901}, {'end': 34700.36, 'text': 'Number 24, is Python object-oriented or functional programming? Python follows object-oriented paradigm.', 'start': 34692.452, 'duration': 7.908}, {'end': 34706.586, 'text': "And you should really know in depth what they mean by object-oriented paradigm if you're doing any interview for scripting languages.", 'start': 34700.52, 'duration': 6.066}, {'end': 34711.514, 'text': 'Python allows the creation of objects and is manipulation through specific methods.', 'start': 34706.852, 'duration': 4.662}, {'end': 34717.356, 'text': 'It supports most of the features of oops which has inheritance on a polymorphism.', 'start': 34711.894, 'duration': 5.462}, {'end': 34722.879, 'text': 'So you have an object and you can inherit all the traits of that object and then add new traits in or alter some of those traits.', 'start': 34717.516, 'duration': 5.363}, {'end': 34724.759, 'text': "That's what object oriented means.", 'start': 34723.239, 'duration': 1.52}, {'end': 34727.641, 'text': 'Python follows functional programming paradigm.', 'start': 34725.1, 'duration': 2.541}], 'summary': 'Python supports object-oriented and functional programming paradigms, with features like inheritance and polymorphism.', 'duration': 58.028, 'max_score': 34669.613, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s34669613.jpg'}, {'end': 34797.808, 'src': 'embed', 'start': 34772.855, 'weight': 15, 'content': [{'end': 34781.439, 'text': 'What is asterisk args and asterisk quarks? Args used in function prototype to accept varying number of arguments.', 'start': 34772.855, 'duration': 8.584}, {'end': 34785.041, 'text': "It's an iterable object, def function args.", 'start': 34781.94, 'duration': 3.101}, {'end': 34787.582, 'text': "And you can imagine it's just a basic list.", 'start': 34785.301, 'duration': 2.281}, {'end': 34794.466, 'text': "So if I send add the numbers a comma b or a comma b comma c, it doesn't really matter.", 'start': 34787.843, 'duration': 6.623}, {'end': 34797.808, 'text': 'It will have that number of objects in it, whatever I send to it.', 'start': 34794.486, 'duration': 3.322}], 'summary': 'Asterisk args in python function prototype accepts varying number of arguments as an iterable object, functioning like a basic list.', 'duration': 24.953, 'max_score': 34772.855, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s34772855.jpg'}, {'end': 34844.446, 'src': 'embed', 'start': 34818.944, 'weight': 16, 'content': [{'end': 34824.448, 'text': "So you'll see that, especially in machine learning, there's a lot of like they'll have inline equals true, that kind of thing.", 'start': 34818.944, 'duration': 5.504}, {'end': 34825.889, 'text': 'Number 27.', 'start': 34824.608, 'duration': 1.281}, {'end': 34828.852, 'text': 'In Python, functions are first class objects.', 'start': 34825.889, 'duration': 2.963}, {'end': 34835.578, 'text': 'What do you understand from this? This means I could return a function from another function.', 'start': 34829.272, 'duration': 6.306}, {'end': 34838.481, 'text': 'I could create a function and treat it just like an object.', 'start': 34835.738, 'duration': 2.743}, {'end': 34840.202, 'text': 'I can assign it to a variable.', 'start': 34838.801, 'duration': 1.401}, {'end': 34842.845, 'text': 'I can pass them as arguments to other functions.', 'start': 34840.483, 'duration': 2.362}, {'end': 34844.446, 'text': 'Number 28.', 'start': 34843.185, 'duration': 1.261}], 'summary': 'In machine learning, inline equals true is common. python allows functions as first-class objects, enabling their use like objects.', 'duration': 25.502, 'max_score': 34818.944, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s34818944.jpg'}, {'end': 34928.389, 'src': 'embed', 'start': 34882.563, 'weight': 17, 'content': [{'end': 34885.225, 'text': "Now let's go ahead and look at some of the more specifics.", 'start': 34882.563, 'duration': 2.662}, {'end': 34889.709, 'text': 'A numpy array is a grid of values, all of the same type.', 'start': 34885.526, 'duration': 4.183}, {'end': 34896.314, 'text': "so if they're either all float, all integer, all string, and is indexed by a tuple of non-negative integers.", 'start': 34890.129, 'duration': 6.185}, {'end': 34904.881, 'text': 'The number of dimensions is the rank of the array, and the shape of an array is a tuple of integers giving the size of the array along each dimension.', 'start': 34896.674, 'duration': 8.207}, {'end': 34914.348, 'text': 'Number 30, what is the difference between matrices and arrays? A matrix comes from linear algebra and is a two-dimensional representation of data.', 'start': 34905.121, 'duration': 9.227}, {'end': 34920.663, 'text': 'It comes with a powerful set of mathematical operations that allow you to manipulate the data in interesting ways.', 'start': 34914.588, 'duration': 6.075}, {'end': 34925.208, 'text': 'Now, arrays, an array is a sequence of objects of similar data type.', 'start': 34921.107, 'duration': 4.101}, {'end': 34928.389, 'text': 'An array within another array forms a matrix.', 'start': 34925.468, 'duration': 2.921}], 'summary': 'Numpy arrays are grids of values with dimensions and shapes, while matrices are two-dimensional representations with powerful mathematical operations.', 'duration': 45.826, 'max_score': 34882.563, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s34882563.jpg'}, {'end': 34978.23, 'src': 'embed', 'start': 34950.695, 'weight': 19, 'content': [{'end': 34956.719, 'text': 'And then, if we want to get our indexes of n maximum values in a numpy array, we can do.', 'start': 34950.695, 'duration': 6.024}, {'end': 34962.242, 'text': 'one way to do it is to take our array, sort it, then do minus n colon.', 'start': 34956.719, 'duration': 5.523}, {'end': 34967.526, 'text': "That means we're going to do, once you've sorted it, you can do minus n.", 'start': 34962.402, 'duration': 5.124}, {'end': 34971.108, 'text': "n would equal then the number of indices, so it's not the actual letter n.", 'start': 34967.526, 'duration': 3.582}, {'end': 34978.23, 'text': 'colon, and really this is about understanding this notation that we can sort it so it goes from lowest to biggest.', 'start': 34971.368, 'duration': 6.862}], 'summary': 'To get indexes of n max values in a numpy array, sort it and do minus n colon.', 'duration': 27.535, 'max_score': 34950.695, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s34950695.jpg'}, {'end': 35083.101, 'src': 'embed', 'start': 35055.896, 'weight': 20, 'content': [{'end': 35061.481, 'text': 'And so we have C, resulting set equals np.vstack, train stack, test set.', 'start': 35055.896, 'duration': 5.585}, {'end': 35067.286, 'text': 'Both option A and B would do horizontal stacking, but we would like to have the vertical stacking option.', 'start': 35061.781, 'duration': 5.505}, {'end': 35068.267, 'text': 'She does this.', 'start': 35067.346, 'duration': 0.921}, {'end': 35072.491, 'text': 'Again, you could add the axes in and use the concatenate to stack it the correct way.', 'start': 35068.687, 'duration': 3.804}, {'end': 35074.113, 'text': 'Number 33.', 'start': 35072.711, 'duration': 1.402}, {'end': 35083.101, 'text': 'How would you import a decision tree classifier in sklearn? We have sklearn.decisionTreeImportDecisionTreeClassifier.', 'start': 35074.113, 'duration': 8.988}], 'summary': 'Utilize np.vstack for vertical stacking in numpy arrays, and import decision tree classifier in sklearn using sklearn.decisiontreeimportdecisiontreeclassifier.', 'duration': 27.205, 'max_score': 35055.896, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s35055896.jpg'}, {'end': 35155.033, 'src': 'embed', 'start': 35119.93, 'weight': 2, 'content': [{'end': 35122.191, 'text': "What's important here is to know a couple things.", 'start': 35119.93, 'duration': 2.261}, {'end': 35126.634, 'text': 'One, we have our link generated from the Google Docs and spreadsheets.', 'start': 35122.591, 'duration': 4.043}, {'end': 35132.517, 'text': 'And then we can do a stringio.stringio request getlink.content.', 'start': 35126.954, 'duration': 5.563}, {'end': 35133.497, 'text': "So there's our source.", 'start': 35132.557, 'duration': 0.94}, {'end': 35137.159, 'text': 'And then finally, we know that pandas can read a CSV.', 'start': 35133.978, 'duration': 3.181}, {'end': 35141.902, 'text': "There's obviously many ways to read a CSV, but data equals pd.read underscore CSV source.", 'start': 35137.199, 'duration': 4.703}, {'end': 35142.522, 'text': 'Number 35.', 'start': 35142.262, 'duration': 0.26}, {'end': 35155.033, 'text': 'What is the difference between the two data series given below?. Below we have DF name and DF location, colon comma brackets around name comma where.', 'start': 35142.522, 'duration': 12.511}], 'summary': 'The transcript discusses using a link generated from google docs and spreadsheets to retrieve content and reading csv files using pandas, with a query about the difference between two data series.', 'duration': 35.103, 'max_score': 35119.93, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s35119930.jpg'}, {'end': 35218.798, 'src': 'embed', 'start': 35193.562, 'weight': 21, 'content': [{'end': 35200.028, 'text': "tell it to do it inline and a lot of functions don't allow you that you're always taking a slice and it is always a copy.", 'start': 35193.562, 'duration': 6.466}, {'end': 35203.211, 'text': 'So C, both are copies of the original data frame.', 'start': 35200.248, 'duration': 2.963}, {'end': 35203.891, 'text': 'Number 36.', 'start': 35203.371, 'duration': 0.52}, {'end': 35209.614, 'text': 'You get the following error while trying to read a file temp.csv using pandas.', 'start': 35203.891, 'duration': 5.723}, {'end': 35212.656, 'text': "Which of the following could correct it? So here's our error.", 'start': 35209.874, 'duration': 2.782}, {'end': 35214.636, 'text': 'Trace back most recent call last.', 'start': 35212.856, 'duration': 1.78}, {'end': 35216.838, 'text': 'File input line one in module.', 'start': 35214.757, 'duration': 2.081}, {'end': 35218.798, 'text': 'Unicode encode error.', 'start': 35217.058, 'duration': 1.74}], 'summary': 'Pandas error: unicode encode error on file read.', 'duration': 25.236, 'max_score': 35193.562, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s35193562.jpg'}, {'end': 35386.406, 'src': 'embed', 'start': 35353.691, 'weight': 7, 'content': [{'end': 35360.435, 'text': 'Number 40, what is the difference between range and X range functions in Python? Well, this is a good one.', 'start': 35353.691, 'duration': 6.744}, {'end': 35361.915, 'text': 'We have matrixes and arrays.', 'start': 35360.475, 'duration': 1.44}, {'end': 35365.577, 'text': 'With a matrix, the range returns a Python list object.', 'start': 35362.075, 'duration': 3.502}, {'end': 35368.439, 'text': 'X range returns an X range object.', 'start': 35365.997, 'duration': 2.442}, {'end': 35371.46, 'text': 'And with arrays, an X range returns an X range object.', 'start': 35368.819, 'duration': 2.641}, {'end': 35374.702, 'text': 'X range creates values as you need them through yielding.', 'start': 35371.68, 'duration': 3.022}, {'end': 35386.406, 'text': 'The key here is that X range returns the values as you them, so it actually processes it post like if you have for X or for a variable in X range,', 'start': 35374.842, 'duration': 11.564}], 'summary': 'In python, range returns a list, while x range returns an x range object, creating values as needed through yielding.', 'duration': 32.715, 'max_score': 35353.691, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s35353691.jpg'}, {'end': 35836.115, 'src': 'heatmap', 'start': 35480, 'weight': 0.913, 'content': [{'end': 35485.544, 'text': 'number 43 how to create a series from a list, numpy array and dictionary.', 'start': 35480, 'duration': 5.544}, {'end': 35489.527, 'text': "so we'll go ahead and input, import our numpy, our pandas and have my list.", 'start': 35485.544, 'duration': 3.983}, {'end': 35495.131, 'text': 'and you can see here we have my list, equals, list of a, b, c, d, e of t over all the way through.', 'start': 35490.027, 'duration': 5.104}, {'end': 35497.613, 'text': 'so my list now makes a list of that.', 'start': 35495.131, 'duration': 2.482}, {'end': 35502.016, 'text': 'for array we have np, dot a, range to 26.', 'start': 35497.613, 'duration': 4.403}, {'end': 35506.34, 'text': 'my dictionary will create a dictionary with a zip, my list, my arguments.', 'start': 35502.016, 'duration': 4.324}, {'end': 35511.924, 'text': "so i'll just use the numpy array we just created with my array to go into the dictionary.", 'start': 35506.34, 'duration': 5.584}, {'end': 35519.89, 'text': 'and the solution is simple with the pd dot series, my list, pd.series, my array, pd.series, my dictionary.', 'start': 35511.924, 'duration': 7.966}, {'end': 35525.595, 'text': "so it's all about knowing the dot capital, s-e-r-i-e-s, don't forget that capitalization.", 'start': 35519.89, 'duration': 5.705}, {'end': 35531.4, 'text': 'number 44 how to get the items not common to both series a and series b.', 'start': 35525.595, 'duration': 5.805}, {'end': 35535.983, 'text': 'And you can see here we have instead of series A and B we have series 1 and 2..', 'start': 35532.04, 'duration': 3.943}, {'end': 35538.443, 'text': 'And we have 1, 2, 3, 4, 5, 4, 5, 6, 7, 8.', 'start': 35535.983, 'duration': 2.46}, {'end': 35541.507, 'text': 'The solution is we take a panda series.', 'start': 35538.445, 'duration': 3.062}, {'end': 35547.071, 'text': 'We have series U equals a panda series NP union one dimension, series 1, series 2.', 'start': 35541.707, 'duration': 5.364}, {'end': 35549.092, 'text': 'So we can now make a union of them.', 'start': 35547.071, 'duration': 2.021}, {'end': 35552.715, 'text': 'We now have series 1 panda series with an intersection.', 'start': 35549.312, 'duration': 3.403}, {'end': 35555.998, 'text': 'and then we can remove one from the other.', 'start': 35553.175, 'duration': 2.823}, {'end': 35560.002, 'text': 'Series u is series u dot is in series 1.', 'start': 35556.238, 'duration': 3.764}, {'end': 35566.009, 'text': "So if the union is not in the intersection, then you know it's a unique value.", 'start': 35560.002, 'duration': 6.007}, {'end': 35571.355, 'text': 'A little bit of logic going on there, playing with three different terms to get the answer we want.', 'start': 35566.029, 'duration': 5.326}, {'end': 35580.52, 'text': '45, how to keep only the top two most frequent values as it is and replace everything else as other in a series.', 'start': 35572.576, 'duration': 7.944}, {'end': 35587.145, 'text': "so again we're working with pandas, because if you're talking series and data frames, that means we're working with pandas.", 'start': 35580.52, 'duration': 6.625}, {'end': 35589.806, 'text': "so we're going to import pandas as pd.", 'start': 35587.145, 'duration': 2.661}, {'end': 35591.427, 'text': "we'll go ahead and create our panda series.", 'start': 35589.806, 'duration': 1.621}, {'end': 35599.091, 'text': "we're going to do that by creating a numpy random random state 100, so 100 in the numpy one, And then we have our panda series.", 'start': 35591.427, 'duration': 7.664}, {'end': 35605.373, 'text': "You can see here we're a random integer, numpy random dot random integer, 1 comma 5 by 12.", 'start': 35599.292, 'duration': 6.081}, {'end': 35612.796, 'text': "And so the solution for this is we go ahead and we've created a PD dot, remember the capital S series solution.", 'start': 35605.373, 'duration': 7.423}, {'end': 35618.077, 'text': "We're going to print the top two frequencies, and that is our series dot value counts.", 'start': 35612.836, 'duration': 5.241}, {'end': 35622.138, 'text': 'And then we take series values count dot index of up to two.', 'start': 35618.557, 'duration': 3.581}, {'end': 35624.399, 'text': "So we're going to take everything up to two.", 'start': 35622.458, 'duration': 1.941}, {'end': 35630.637, 'text': "And then we'll do the series is in, so if it's not in the first two, then it's going to equal other.", 'start': 35624.895, 'duration': 5.742}, {'end': 35633.058, 'text': "And this would be something you'd want to write down on paper.", 'start': 35630.877, 'duration': 2.181}, {'end': 35637.599, 'text': 'If it looks confusing, take a moment, pause the video,', 'start': 35633.338, 'duration': 4.261}, {'end': 35643.901, 'text': 'write this down and see if you can figure out how the logic came together and try to throw yourself a couple other little logic puzzles like this.', 'start': 35637.599, 'duration': 6.302}, {'end': 35646.001, 'text': 'Number 46.', 'start': 35644.46, 'duration': 1.541}, {'end': 35650.605, 'text': 'How to find the positions of numbers that are multiples of 3 from a series.', 'start': 35646.001, 'duration': 4.604}, {'end': 35654.288, 'text': "And in here we're actually going to use a numpy to solve it.", 'start': 35651.286, 'duration': 3.002}, {'end': 35657.31, 'text': "The first part, series, lets you know it's going to be a panda series.", 'start': 35654.428, 'duration': 2.882}, {'end': 35661.143, 'text': 'And if we come down here we have np.arg where.', 'start': 35657.751, 'duration': 3.392}, {'end': 35667.449, 'text': 'so this is a vocabulary question series with, remember the percentile 3 is a remainder.', 'start': 35661.143, 'duration': 6.306}, {'end': 35673.954, 'text': "so if the remainder equals 0, then we're going to generate that string where the object, divided by 3, equals 0 has no remainder.", 'start': 35667.449, 'duration': 6.505}, {'end': 35675.675, 'text': "so then we know it's a multiple of 3..", 'start': 35673.954, 'duration': 1.721}, {'end': 35685.482, 'text': "number 47 how to compute the euclidean distance between two series And this one's really cool because we have our panda series, P and Q.", 'start': 35675.675, 'duration': 9.807}, {'end': 35689.264, 'text': 'And what I like about this one is they give us two solutions you can go with.', 'start': 35685.482, 'duration': 3.782}, {'end': 35691.525, 'text': 'And really you should kind of know both.', 'start': 35689.544, 'duration': 1.981}, {'end': 35694.926, 'text': 'The first one would be, yes, you know what the Euclidean distance is.', 'start': 35691.725, 'duration': 3.201}, {'end': 35700.289, 'text': 'And that is we can take the first series minus the second series squared and then sum them up.', 'start': 35695.427, 'duration': 4.862}, {'end': 35705.131, 'text': 'And then we do the square root, which is the same as taking the power to 0.5.', 'start': 35700.689, 'duration': 4.442}, {'end': 35710.335, 'text': 'Doing the power to 0.5 is easier than doing the square root.', 'start': 35705.131, 'duration': 5.204}, {'end': 35714.898, 'text': "So a lot of times you'll see that as a switch, but you could have also done the square root and used the math in there.", 'start': 35710.615, 'duration': 4.283}, {'end': 35716.039, 'text': "So there's solution one.", 'start': 35715.058, 'duration': 0.981}, {'end': 35717.78, 'text': 'You should know your Euclidean distance.', 'start': 35716.059, 'duration': 1.721}, {'end': 35720.562, 'text': 'And then solution two is the numpy solution.', 'start': 35718.14, 'duration': 2.422}, {'end': 35724.084, 'text': 'So we have np.linalg.norm.', 'start': 35720.702, 'duration': 3.382}, {'end': 35726.786, 'text': "That's how we're going to compute our Euclidean distance.", 'start': 35724.224, 'duration': 2.562}, {'end': 35728.848, 'text': 'p minus q.', 'start': 35727.587, 'duration': 1.261}, {'end': 35731.73, 'text': 'Very elegant and very straightforward and easy to compute.', 'start': 35728.848, 'duration': 2.882}, {'end': 35735.953, 'text': 'Number 48, how to reverse the rows of data frame.', 'start': 35732.27, 'duration': 3.683}, {'end': 35737.434, 'text': 'So here we have our data frame.', 'start': 35736.173, 'duration': 1.261}, {'end': 35741.658, 'text': "We're going to create a numpy array by 25, reshape it 5 minus 1.", 'start': 35737.514, 'duration': 4.144}, {'end': 35745.021, 'text': 'And this creates a 25 by 25 data frame.', 'start': 35741.658, 'duration': 3.363}, {'end': 35749.004, 'text': 'And so our solution is to do the DFI location.', 'start': 35745.281, 'duration': 3.723}, {'end': 35751.446, 'text': 'And this is just understanding how steps work.', 'start': 35749.224, 'duration': 2.222}, {'end': 35754.929, 'text': 'The steps, you have your colon, colon, minus 1.', 'start': 35751.746, 'duration': 3.183}, {'end': 35757.391, 'text': "So we're taking all the rows, all the columns.", 'start': 35754.929, 'duration': 2.462}, {'end': 35764.859, 'text': "minus 1, so our stepping minus 1 going the reverse direction, and then we're just going to use across all the different columns on there.", 'start': 35757.771, 'duration': 7.088}, {'end': 35765.78, 'text': 'Let me say that again.', 'start': 35764.96, 'duration': 0.82}, {'end': 35772.408, 'text': 'The first colon is going to be your row, starting row, stopping row, step minus 1.', 'start': 35765.901, 'duration': 6.507}, {'end': 35776.313, 'text': "That's all this is about is that step minus 1, comma, and then all the columns.", 'start': 35772.408, 'duration': 3.905}, {'end': 35786.641, 'text': "49 If you split your data into train-test splits, is it possible to overfit your model? And the answer is yes, it's definitely possible.", 'start': 35777.414, 'duration': 9.227}, {'end': 35794.328, 'text': 'One common beginner mistake is retuning a model or training new models with different parameters after seeing its performance on the test set.', 'start': 35787.022, 'duration': 7.306}, {'end': 35803.414, 'text': 'My favorite example of this is you have your script put together and you keep hitting the rerun button until you get the answer you want,', 'start': 35794.628, 'duration': 8.786}, {'end': 35809.478, 'text': 'not taking the answer it first gave you, or running it over an array and recording all the answers to see how they vary.', 'start': 35803.414, 'duration': 6.064}, {'end': 35819.645, 'text': 'Number 50, which Python library is built on top of matplotlib and pandas to ease data plotting? The answer to this is Seaborn.', 'start': 35809.658, 'duration': 9.987}, {'end': 35822.767, 'text': 'Seaborn is a data visualization library in Python.', 'start': 35819.925, 'duration': 2.842}, {'end': 35827.97, 'text': 'that provides a high-level interface for drawing statistical information of informative graphs.', 'start': 35822.987, 'duration': 4.983}, {'end': 35829.951, 'text': 'I hope this helps you in your interview.', 'start': 35828.33, 'duration': 1.621}, {'end': 35833.153, 'text': "With that, we've reached the end of this complete Python course.", 'start': 35830.332, 'duration': 2.821}, {'end': 35834.834, 'text': 'I hope you enjoyed this video.', 'start': 35833.513, 'duration': 1.321}, {'end': 35836.115, 'text': 'Do like and share it.', 'start': 35835.134, 'duration': 0.981}], 'summary': 'Python series manipulation, data visualization with seaborn, model overfitting warning.', 'duration': 356.115, 'max_score': 35480, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s35480000.jpg'}, {'end': 35622.138, 'src': 'embed', 'start': 35589.806, 'weight': 5, 'content': [{'end': 35591.427, 'text': "we'll go ahead and create our panda series.", 'start': 35589.806, 'duration': 1.621}, {'end': 35599.091, 'text': "we're going to do that by creating a numpy random random state 100, so 100 in the numpy one, And then we have our panda series.", 'start': 35591.427, 'duration': 7.664}, {'end': 35605.373, 'text': "You can see here we're a random integer, numpy random dot random integer, 1 comma 5 by 12.", 'start': 35599.292, 'duration': 6.081}, {'end': 35612.796, 'text': "And so the solution for this is we go ahead and we've created a PD dot, remember the capital S series solution.", 'start': 35605.373, 'duration': 7.423}, {'end': 35618.077, 'text': "We're going to print the top two frequencies, and that is our series dot value counts.", 'start': 35612.836, 'duration': 5.241}, {'end': 35622.138, 'text': 'And then we take series values count dot index of up to two.', 'start': 35618.557, 'duration': 3.581}], 'summary': 'Created a panda series with random integer values, printed top two frequencies.', 'duration': 32.332, 'max_score': 35589.806, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s35589806.jpg'}, {'end': 35827.97, 'src': 'embed', 'start': 35787.022, 'weight': 23, 'content': [{'end': 35794.328, 'text': 'One common beginner mistake is retuning a model or training new models with different parameters after seeing its performance on the test set.', 'start': 35787.022, 'duration': 7.306}, {'end': 35803.414, 'text': 'My favorite example of this is you have your script put together and you keep hitting the rerun button until you get the answer you want,', 'start': 35794.628, 'duration': 8.786}, {'end': 35809.478, 'text': 'not taking the answer it first gave you, or running it over an array and recording all the answers to see how they vary.', 'start': 35803.414, 'duration': 6.064}, {'end': 35819.645, 'text': 'Number 50, which Python library is built on top of matplotlib and pandas to ease data plotting? The answer to this is Seaborn.', 'start': 35809.658, 'duration': 9.987}, {'end': 35822.767, 'text': 'Seaborn is a data visualization library in Python.', 'start': 35819.925, 'duration': 2.842}, {'end': 35827.97, 'text': 'that provides a high-level interface for drawing statistical information of informative graphs.', 'start': 35822.987, 'duration': 4.983}], 'summary': 'Avoid the beginner mistake of retuning models based on test set, use seaborn for data visualization.', 'duration': 40.948, 'max_score': 35787.022, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s35787022.jpg'}], 'start': 33985.767, 'title': 'Python programming fundamentals', 'summary': 'Covers python basics, coding concepts, interview questions, data analysis, and visualization, including memory management, argument passing, generating random numbers, using operators, object-oriented and functional programming, numpy arrays, data frame manipulation, and data visualization in sklearn and seaborn.', 'chapters': [{'end': 34069.408, 'start': 33985.767, 'title': 'Python memory management and argument passing', 'summary': "Discusses python's memory management, highlighting its private heap space for storing objects and the passing of arguments by reference, enabling changes made within a function to be reflected on the original object.", 'duration': 83.641, 'highlights': ['The Python memory manager manages various aspects of the private heap, including sharing, caching, segmentation, and allocation, with the user having no control over it.', 'Arguments in Python are passed by reference, allowing changes made within a function to be reflected on the original object.', 'The process of pickling and unpickling in Python allows data to be stored and retrieved from another software program or at a later time.']}, {'end': 34343.754, 'start': 34069.808, 'title': 'Python basics q&a', 'summary': 'Covers python basics including generating random numbers, using operators like double forward slash and is, purpose of pass statement, checking alphanumerical characters in a string, merging elements in a sequence, and removing leading whitespace.', 'duration': 273.946, 'highlights': ['Python provides the inbuilt function lstrip to remove all leading access from a string. The lstrip function in Python is used to remove all leading whitespace from a string, providing a built-in solution for this common task.', 'Python has an inbuilt method, isAllNumber which returns true if all characters in the string are alphanumeric. The isAllNumber method in Python is used to check if all characters in a string are alphanumeric, providing a convenient way to validate alphanumeric content.', 'To generate random numbers in Python, you must first import the random module. The random Function generates a random float value between 0 and 1. The process of generating random numbers in Python involves importing the random module and using the random function to produce float values between 0 and 1, a fundamental concept in Python programming.', "The is operator compares the ID of the two objects. The 'is' operator in Python is used to compare the identity of two objects, which is a critical aspect of understanding object comparison in Python.", 'Python provides the random range function to generate random numbers within a given range. The random range function in Python allows for the generation of random numbers within a specified range, offering a versatile tool for creating diverse random number sequences.']}, {'end': 34687.219, 'start': 34343.774, 'title': 'Python coding concepts and functions', 'summary': 'Covers concepts such as replacing substrings in strings, differences between del and remove on lists, displaying text file contents in reverse order, differentiating between append and extend for lists, understanding output of a python code snippet, the difference between lists and tuples, documenting with docstrings in python, using print without new line, and utilizing the split function in python.', 'duration': 343.445, 'highlights': ['Understanding the output of a Python code snippet Explains the output of a Python code snippet and how the add to list function works, showcasing the difference between list one and list three, demonstrating how the default list is created only once during the function and not during its call.', "Replacing substrings in strings Describes how to replace all occurrences of a substring with a new string using the replace function, with an example of replacing 'John' with 'J-O-H-N' and specifying the count of replacements.", 'Differences between append and extend for lists Illustrates the difference between the append and extend methods for lists, showcasing the effect of appending an element to the end of a list and adding elements from an interval to the end of the list.', 'Displaying text file contents in reverse order Explains the process of displaying the contents of a text file in reverse order, which involves opening the file, storing its contents into a list, reversing the list, and iterating through it using a for loop.', 'Using the split function in Python Describes how the split function splits a string based on a specific delimiter and the maximum number of splits, with an example of splitting a variable by commas and limiting the splits to the first two occurrences.']}, {'end': 35074.113, 'start': 34687.419, 'title': 'Python interview questions', 'summary': 'Covers python interview questions related to object-oriented and functional programming, function prototypes, first-class functions, special variables, numpy arrays, matrices, and numpy array manipulations.', 'duration': 386.694, 'highlights': ['The chapter covers Python interview questions related to object-oriented and functional programming, function prototypes, first-class functions, special variables, numpy arrays, matrices, and numpy array manipulations.', 'Python follows object-oriented paradigm and functional programming paradigm, supporting features like inheritance, polymorphism, and first-class functions.', 'Asterisk args and asterisk quarks are used in function prototypes to accept varying numbers of arguments, allowing for iterable objects and keyworded arguments in Python functions.', 'Functions in Python are first-class objects, enabling them to be treated as objects, assigned to variables, and passed as arguments to other functions.', "Numpy arrays are grids of values of the same type, indexed by non-negative integers, with the array's shape being a tuple of integers giving the size of the array along each dimension.", 'The difference between matrices and arrays lies in their representation and usage, with matrices being a two-dimensional representation of data and arrays being a sequence of objects of similar data type.', 'To get indexes of n maximum values in a numpy array, one can sort the array and use slicing to obtain the desired indexes.', 'To obtain the resulting set from the train set and the test set in a numpy array, one can use np.vstack to vertically stack the arrays, as it represents the desired vertical stacking option.']}, {'end': 35839.077, 'start': 35074.113, 'title': 'Python data analysis and visualization', 'summary': 'Covers various python data analysis and visualization topics, including importing decision tree classifier in sklearn, accessing csv data in python using pandas, understanding the difference between data series, resolving errors while reading a file using pandas, setting line width in a plot, re-indexing a data frame, copying objects in python, understanding range and x range functions, checking if a pandas data frame is empty, sorting an array in numpy, creating a series from a list, numpy array, and dictionary, finding items not common to two series, keeping only the top two most frequent values, finding positions of multiples of 3 in a series, computing the euclidean distance between two series, reversing the rows of a data frame, overfitting the model in train-test splits, and using seaborn for data plotting.', 'duration': 764.964, 'highlights': ['Understanding the difference between data series, resolving errors while reading a file using pandas, setting line width in a plot, and re-indexing a data frame are important topics covered in the chapter. data series, resolving errors in reading files, setting line width in a plot, re-indexing a data frame', 'Accessing CSV data in Python using pandas is essential, and pandas.read_csv is a common method used for this purpose. Accessing CSV data, pandas.read_csv method', 'Seaborn, a library built on top of matplotlib and pandas, is used to ease data plotting and draw informative graphs for statistical information. Seaborn, matplotlib, pandas, data plotting, informative graphs', "Overfitting the model in train-test splits is a common beginner mistake, and it's important to avoid retuning models based on the test set performance. Overfitting, train-test splits, retuning models"]}], 'duration': 1853.31, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Sb8JDqeq74s/pics/Sb8JDqeq74s33985767.jpg', 'highlights': ['Python memory manager handles private heap aspects, including sharing and allocation.', 'Python arguments are passed by reference, reflecting changes on the original object.', 'Pickling and unpickling in Python store and retrieve data from other programs.', "Python's lstrip function removes leading whitespace from a string.", 'isAllNumber method in Python checks if all characters in a string are alphanumeric.', 'Random function in Python generates float values between 0 and 1.', "The 'is' operator in Python compares the identity of two objects.", 'Random range function in Python generates random numbers within a specified range.', 'Explains the output of a Python code snippet and the add to list function.', 'Describes replacing substrings in strings using the replace function.', 'Illustrates the difference between append and extend methods for lists.', 'Explains the process of displaying text file contents in reverse order.', 'Describes how the split function splits a string based on a specific delimiter.', 'Covers Python interview questions related to object-oriented and functional programming.', 'Python supports object-oriented and functional programming paradigms.', 'Asterisk args and asterisk quarks are used in function prototypes for varying arguments.', 'Functions in Python are first-class objects, enabling them to be treated as objects.', 'Numpy arrays are grids of values of the same type, indexed by non-negative integers.', 'Difference between matrices and arrays lies in their representation and usage.', 'Sorting and slicing can obtain the indexes of n maximum values in a numpy array.', 'np.vstack can be used to vertically stack arrays in a numpy array.', 'Understanding the difference between data series, resolving errors while reading a file using pandas, setting line width in a plot, and re-indexing a data frame are important topics covered in the chapter.', 'Accessing CSV data in Python using pandas is essential, and pandas.read_csv is a common method used for this purpose.', 'Seaborn, a library built on top of matplotlib and pandas, is used to ease data plotting and draw informative graphs for statistical information.', "Overfitting the model in train-test splits is a common beginner mistake, and it's important to avoid retuning models based on the test set performance."]}], 'highlights': ['The tutorial provides a step-by-step demonstration of installing Python 3.7.1 on a Windows system, highlighting the use of the executable installer and the importance of adding Python 3.7 to path for simplifying command line access.', 'The tutorial demonstrates the testing of Python installation through both the IDLE for Python and the command line interpreter, highlighting their significance as starting points for Python coding.', 'The tutorial introduces the installation of Jupyter Notebook through Anaconda, emphasizing its flexibility in creating different Python environments and its compatibility with various operating systems.', 'Covers various list operations and methods like append, extend, insert, and remove.', 'The chapter covers the basic built-in functions for Python lists, including len, min, max, and sum, as well as the concept of tuples in Python, including creation methods, immutable nature, and differences from lists.', 'Covers the basics of strings, including its definition as a data type, syntax for storing strings, and handling single and double quotes.', 'Dictionaries in Python store data as a pair of key and value, providing a flexible and efficient way to organize and access data in the form of key-value pairs.', 'Covers python programming concepts including while loops, reversing integers, extracting digits and handling errors, nested while loop patterns, and a number guessing game in python, providing practical examples and use cases for each concept.', 'The chapter covers the basics of creating and manipulating arrays in Python using the array module.', 'Python is an object-oriented programming language, completely focused around the presence of an object.', 'Threading in Python allows for the utilization of multiple cores in a system, leading to faster and more efficient program execution.', 'Demonstrates using OS module to find file paths and retrieve current working directory', 'TensorFlow achieves 92% accuracy in recognizing handwritten digits using the Amnes dataset.', 'NumPy arrays perform 15 times faster than Python lists, with a time difference of 46 seconds for Python lists compared to 2.99 seconds for NumPy arrays.', 'Covers the creation and manipulation of NumPy arrays, emphasizing the use of complex data types like complex64 and complex128.', 'The chapter covers customizing lines with different widths, styles, and markers, offering a range of visual options for data visualization.', 'The chapter demonstrates the process of reading and managing Excel and CSV files in Python.', 'Data scientists need to extract information from websites without direct APIs', 'Python memory manager handles private heap aspects, including sharing and allocation.', 'Python arguments are passed by reference, reflecting changes on the original object.', 'Pickling and unpickling in Python store and retrieve data from other programs.', "Python's lstrip function removes leading whitespace from a string.", 'isAllNumber method in Python checks if all characters in a string are alphanumeric.', 'Random function in Python generates float values between 0 and 1.', "The 'is' operator in Python compares the identity of two objects.", 'Random range function in Python generates random numbers within a specified range.', 'Functions in Python are first-class objects, enabling them to be treated as objects.', 'Numpy arrays are grids of values of the same type, indexed by non-negative integers.', 'Seaborn, a library built on top of matplotlib and pandas, is used to ease data plotting and draw informative graphs for statistical information.']}