From 36fc91a6ba2ca2746685125405452eee44789fc4 Mon Sep 17 00:00:00 2001 From: nandinikalita <57187180+nandinikalita@users.noreply.github.com> Date: Thu, 18 Sep 2025 13:22:34 -0700 Subject: [PATCH 1/2] Created using Colab --- sum_2elts_list.ipynb | 508 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 508 insertions(+) create mode 100644 sum_2elts_list.ipynb diff --git a/sum_2elts_list.ipynb b/sum_2elts_list.ipynb new file mode 100644 index 0000000..33743ec --- /dev/null +++ b/sum_2elts_list.ipynb @@ -0,0 +1,508 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Wf5KrEb6vrkR" + }, + "source": [ + "# Welcome to Colab!\n", + "\n", + "\n", + "## Access Popular LLMs via Google-Colab-AI Without an API Key\n", + "Users with Colab's paid plans have free access to most popular LLMs via google-colab-ai Python library. For more details, refer to the [getting started with google colab ai](https://colab.research.google.com/github/googlecolab/colabtools/blob/main/notebooks/Getting_started_with_google_colab_ai.ipynb).\n", + "\n", + "```\n", + "from google.colab import ai\n", + "response = ai.generate_text(\"What is the capital of France?\")\n", + "print(response)\n", + "```\n", + "\n", + "\n", + "## Explore the Gemini API\n", + "The Gemini API gives you access to Gemini models created by Google DeepMind. Gemini models are built from the ground up to be multimodal, so you can reason seamlessly across text, images, code, and audio.\n", + "\n", + "**How to get started?**\n", + "* Go to [Google AI Studio](https://aistudio.google.com/) and log in with your Google account.\n", + "* [Create an API key](https://aistudio.google.com/app/apikey).\n", + "* Use a quickstart for [Python](https://colab.research.google.com/github/google-gemini/cookbook/blob/main/quickstarts/Get_started.ipynb), or call the REST API using [curl](https://colab.research.google.com/github/google-gemini/cookbook/blob/main/quickstarts/rest/Prompting_REST.ipynb).\n", + "\n", + "**Discover Gemini's advanced capabilities**\n", + "* Play with Gemini [multimodal outputs](https://colab.research.google.com/github/google-gemini/cookbook/blob/main/quickstarts/Image-out.ipynb), mixing text and images in an iterative way.\n", + "* Discover the [multimodal Live API](https://colab.research.google.com/github/google-gemini/cookbook/blob/main/quickstarts/Get_started_LiveAPI.ipynb ) (demo [here](https://aistudio.google.com/live)).\n", + "* Learn how to [analyze images and detect items in your pictures](https://colab.research.google.com/github/google-gemini/cookbook/blob/main/quickstarts/Spatial_understanding.ipynb\") using Gemini (bonus, there's a [3D version](https://colab.research.google.com/github/google-gemini/cookbook/blob/main/examples/Spatial_understanding_3d.ipynb) as well!).\n", + "* Unlock the power of [Gemini thinking model](https://colab.research.google.com/github/google-gemini/cookbook/blob/main/quickstarts/Get_started_thinking.ipynb), capable of solving complex task with its inner thoughts.\n", + " \n", + "**Explore complex use cases**\n", + "* Use [Gemini grounding capabilities](https://colab.research.google.com/github/google-gemini/cookbook/blob/main/examples/Search_grounding_for_research_report.ipynb) to create a report on a company based on what the model can find on internet.\n", + "* Extract [invoices and form data from PDF](https://colab.research.google.com/github/google-gemini/cookbook/blob/main/examples/Pdf_structured_outputs_on_invoices_and_forms.ipynb) in a structured way.\n", + "* Create [illustrations based on a whole book](https://colab.research.google.com/github/google-gemini/cookbook/blob/main/examples/Book_illustration.ipynb) using Gemini large context window and Imagen.\n", + "\n", + "To learn more, check out the [Gemini cookbook](https://github.com/google-gemini/cookbook) or visit the [Gemini API documentation](https://ai.google.dev/docs/).\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Nma_JWh-W-IF" + }, + "source": [ + "Colab now has AI features powered by [Gemini](https://gemini.google.com). The video below provides information on how to use these features, whether you're new to Python, or a seasoned veteran.\n", + "\n", + "
\n", + " \n", + " Thumbnail for a video showing 3 AI-powered Google Colab features\n", + " \n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "5fCEDCU_qrC0" + }, + "source": [ + "
\n", + "

What is Colab?

\n", + "
\n", + "\n", + "Colab, or \"Colaboratory\", allows you to write and execute Python in your browser, with\n", + "- Zero configuration required\n", + "- Access to GPUs free of charge\n", + "- Easy sharing\n", + "\n", + "Whether you're a **student**, a **data scientist** or an **AI researcher**, Colab can make your work easier. Watch [Introduction to Colab](https://www.youtube.com/watch?v=inN8seMm7UI) or [Colab Features You May Have Missed](https://www.youtube.com/watch?v=rNgswRZ2C1Y) to learn more, or just get started below!" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "GJBs_flRovLc" + }, + "source": [ + "
\n", + "\n", + "## **Getting started**\n", + "
\n", + "\n", + "The document you are reading is not a static web page, but an interactive environment called a **Colab notebook** that lets you write and execute code.\n", + "\n", + "For example, here is a **code cell** with a short Python script that computes a value, stores it in a variable, and prints the result:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "gJr_9dXGpJ05", + "outputId": "beb4aaca-6eac-4b30-f2ff-ea4308968122" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "86400" + ] + }, + "execution_count": null, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "seconds_in_a_day = 24 * 60 * 60\n", + "seconds_in_a_day" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "2fhs6GZ4qFMx" + }, + "source": [ + "To execute the code in the above cell, select it with a click and then either press the play button to the left of the code, or use the keyboard shortcut \"Command/Ctrl+Enter\". To edit the code, just click the cell and start editing.\n", + "\n", + "Variables that you define in one cell can later be used in other cells:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "-gE-Ez1qtyIA", + "outputId": "e8f0c2b1-3c1e-4476-f8c2-d8f31cdb5e75" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "604800" + ] + }, + "execution_count": null, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "seconds_in_a_week = 7 * seconds_in_a_day\n", + "seconds_in_a_week" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "lSrWNr3MuFUS" + }, + "source": [ + "Colab notebooks allow you to combine **executable code** and **rich text** in a single document, along with **images**, **HTML**, **LaTeX** and more. When you create your own Colab notebooks, they are stored in your Google Drive account. You can easily share your Colab notebooks with co-workers or friends, allowing them to comment on your notebooks or even edit them. To learn more, see [Overview of Colab](/notebooks/basic_features_overview.ipynb). To create a new Colab notebook you can use the File menu above, or use the following link: [create a new Colab notebook](http://colab.research.google.com#create=true).\n", + "\n", + "Colab notebooks are Jupyter notebooks that are hosted by Colab. To learn more about the Jupyter project, see [jupyter.org](https://www.jupyter.org)." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "UdRyKR44dcNI" + }, + "source": [ + "
\n", + "\n", + "## Data science\n", + "
\n", + "\n", + "With Colab you can harness the full power of popular Python libraries to analyze and visualize data. The code cell below uses **numpy** to generate some random data, and uses **matplotlib** to visualize it. To edit the code, just click the cell and start editing." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "4_kCnsPUqS6o" + }, + "source": [ + "You can import your own data into Colab notebooks from your Google Drive account, including from spreadsheets, as well as from Github and many other sources. To learn more about importing data, and how Colab can be used for data science, see the links below under [Working with Data](#working-with-data)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "height": 249 + }, + "id": "C4HZx7Gndbrh", + "outputId": "65838ba2-0ea9-41b7-e3f9-a725be449d3b" + }, + "outputs": [ + { + "data": { + "text/markdown": [ + "![Sample Visualization](data:image/png;base64,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)" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import IPython.display as display\n", + "from matplotlib import pyplot as plt\n", + "import io\n", + "import base64\n", + "\n", + "ys = 200 + np.random.randn(100)\n", + "x = [x for x in range(len(ys))]\n", + "\n", + "fig = plt.figure(figsize=(4, 3), facecolor='w')\n", + "plt.plot(x, ys, '-')\n", + "plt.fill_between(x, ys, 195, where=(ys > 195), facecolor='g', alpha=0.6)\n", + "plt.title(\"Sample Visualization\", fontsize=10)\n", + "\n", + "data = io.BytesIO()\n", + "plt.savefig(data)\n", + "image = F\"data:image/png;base64,{base64.b64encode(data.getvalue()).decode()}\"\n", + "alt = \"Sample Visualization\"\n", + "display.display(display.Markdown(F\"\"\"![{alt}]({image})\"\"\"))\n", + "plt.close(fig)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "VYV91hbKwP2J" + }, + "source": [ + "Colab notebooks execute code on Google's cloud servers, meaning you can leverage the power of Google hardware, including [GPUs and TPUs](#using-accelerated-hardware), regardless of the power of your machine. All you need is a browser.\n", + "\n", + "For example, if you find yourself waiting for **pandas** code to finish running and want to go faster, you can switch to a GPU Runtime and use libraries like [RAPIDS cuDF](https://rapids.ai/cudf-pandas) that provide zero-code-change acceleration." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "vwnNlNIEwoZ8" + }, + "source": [ + "To learn more about accelerating pandas on Colab, see the [10 minute guide](https://colab.research.google.com/github/rapidsai-community/showcase/blob/main/getting_started_tutorials/cudf_pandas_colab_demo.ipynb) or\n", + " [US stock market data analysis demo](https://colab.research.google.com/github/rapidsai-community/showcase/blob/main/getting_started_tutorials/cudf_pandas_stocks_demo.ipynb)." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "OwuxHmxllTwN" + }, + "source": [ + "
\n", + "\n", + "## Machine learning\n", + "
\n", + "\n", + "With Colab you can import an image dataset, train an image classifier on it, and evaluate the model, all in just [a few lines of code](https://colab.research.google.com/github/tensorflow/docs/blob/master/site/en/tutorials/quickstart/beginner.ipynb)." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ufxBm1yRnruN" + }, + "source": [ + "Colab is used extensively in the machine learning community with applications including:\n", + "- Getting started with TensorFlow\n", + "- Developing and training neural networks\n", + "- Experimenting with TPUs\n", + "- Disseminating AI research\n", + "- Creating tutorials\n", + "\n", + "To see sample Colab notebooks that demonstrate machine learning applications, see the [machine learning examples](#machine-learning-examples) below." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-Rh3-Vt9Nev9" + }, + "source": [ + "
\n", + "\n", + "## More Resources\n", + "\n", + "### Working with Notebooks in Colab\n", + "\n", + "
\n", + "\n", + "- [Overview of Colab](/notebooks/basic_features_overview.ipynb)\n", + "- [Guide to Markdown](/notebooks/markdown_guide.ipynb)\n", + "- [Importing libraries and installing dependencies](/notebooks/snippets/importing_libraries.ipynb)\n", + "- [Saving and loading notebooks in GitHub](https://colab.research.google.com/github/googlecolab/colabtools/blob/main/notebooks/colab-github-demo.ipynb)\n", + "- [Interactive forms](/notebooks/forms.ipynb)\n", + "- [Interactive widgets](/notebooks/widgets.ipynb)\n", + "\n", + "
\n", + "\n", + "\n", + "### Working with Data\n", + "
\n", + "\n", + "- [Loading data: Drive, Sheets, and Google Cloud Storage](/notebooks/io.ipynb)\n", + "- [Charts: visualizing data](/notebooks/charts.ipynb)\n", + "- [Getting started with BigQuery](/notebooks/bigquery.ipynb)\n", + "\n", + "
\n", + "\n", + "### Machine Learning\n", + "\n", + "
\n", + "\n", + "These are a few of the notebooks related to Machine Learning, including Google's online Machine Learning course. See the [full course website](https://developers.google.com/machine-learning/crash-course/) for more.\n", + "- [Intro to Pandas DataFrame](https://colab.research.google.com/github/google/eng-edu/blob/main/ml/cc/exercises/pandas_dataframe_ultraquick_tutorial.ipynb)\n", + "- [Intro to RAPIDS cuDF to accelerate pandas](https://nvda.ws/rapids-cudf)\n", + "- [Getting Started with cuML's accelerator mode](https://colab.research.google.com/github/rapidsai-community/showcase/blob/main/getting_started_tutorials/cuml_sklearn_colab_demo.ipynb)\n", + "- [Linear regression with tf.keras using synthetic data](https://colab.research.google.com/github/google/eng-edu/blob/main/ml/cc/exercises/linear_regression_with_synthetic_data.ipynb)\n", + "\n", + "
\n", + "\n", + "\n", + "### Using Accelerated Hardware\n", + "
\n", + "\n", + "- [TensorFlow with GPUs](/notebooks/gpu.ipynb)\n", + "- [TPUs in Colab](/notebooks/tpu.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "P-H6Lw1vyNNd" + }, + "source": [ + "
\n", + "\n", + "\n", + "\n", + "### Featured examples\n", + "\n", + "
\n", + "\n", + "- [Retraining an Image Classifier](https://tensorflow.org/hub/tutorials/tf2_image_retraining): Build a Keras model on top of a pre-trained image classifier to distinguish flowers.\n", + "- [Text Classification](https://tensorflow.org/hub/tutorials/tf2_text_classification): Classify IMDB movie reviews as either *positive* or *negative*.\n", + "- [Style Transfer](https://tensorflow.org/hub/tutorials/tf2_arbitrary_image_stylization): Use deep learning to transfer style between images.\n", + "- [Multilingual Universal Sentence Encoder Q&A](https://tensorflow.org/hub/tutorials/retrieval_with_tf_hub_universal_encoder_qa): Use a machine learning model to answer questions from the SQuAD dataset.\n", + "- [Video Interpolation](https://tensorflow.org/hub/tutorials/tweening_conv3d): Predict what happened in a video between the first and the last frame.\n" + ] + }, + { + "cell_type": "code", + "source": [], + "metadata": { + "id": "p0vNPYHsz3C0" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.\n", + "\n", + "You may assume that each input would have exactly one solution, and you may not use the same element twice.\n", + "\n", + "You can return the answer in any order.\n", + "\n", + "\n", + "\n", + "Example 1:\n", + "\n", + "Input: nums = [2,7,11,15], target = 9\n", + "Output: [0,1]\n", + "Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].\n", + "Example 2:\n", + "\n", + "Input: nums = [3,2,4], target = 6\n", + "Output: [1,2]\n", + "Example 3:\n", + "\n", + "Input: nums = [3,3], target = 6\n", + "Output: [0,1]" + ], + "metadata": { + "id": "S_SIQ9Bh0500" + } + }, + { + "cell_type": "code", + "source": [ + "import numpy as np\n", + "import pandas as pd" + ], + "metadata": { + "id": "3Fv1wSU5z3eZ" + }, + "execution_count": 37, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "nums = [2,7,11,15]" + ], + "metadata": { + "id": "IYfwcrho1Lh4" + }, + "execution_count": 38, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "target = []" + ], + "metadata": { + "id": "KyqC28-c1A9t" + }, + "execution_count": 39, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "for i in range(len(nums)):\n", + " for j in range(i+1, len(nums)):\n", + " if nums[i] + nums[j] == 9:\n", + " target.append(i)\n", + " target.append(j)\n", + " else:\n", + " pass\n", + "\n", + "" + ], + "metadata": { + "id": "G-xzdv8p1IZM" + }, + "execution_count": 40, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "target" + ], + "metadata": { + "id": "6tsDDDDm25qq", + "outputId": "46e264e8-322f-4e8d-f2ec-8908165d62f7", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "execution_count": 41, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "[0, 1]" + ] + }, + "metadata": {}, + "execution_count": 41 + } + ] + }, + { + "cell_type": "code", + "source": [], + "metadata": { + "id": "d3vWKDtQ3Mvz" + }, + "execution_count": null, + "outputs": [] + } + ], + "metadata": { + "colab": { + "name": "Welcome To Colab", + "provenance": [], + "include_colab_link": true + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file From cfe381c6d5db6d1db7976fd3297bde4f2bc689c3 Mon Sep 17 00:00:00 2001 From: nandinikalita <57187180+nandinikalita@users.noreply.github.com> Date: Thu, 18 Sep 2025 13:24:19 -0700 Subject: [PATCH 2/2] Created using Colab --- Welcome_To_Colab.ipynb | 497 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 497 insertions(+) create mode 100644 Welcome_To_Colab.ipynb diff --git a/Welcome_To_Colab.ipynb b/Welcome_To_Colab.ipynb new file mode 100644 index 0000000..b9e440c --- /dev/null +++ b/Welcome_To_Colab.ipynb @@ -0,0 +1,497 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "Wf5KrEb6vrkR" + }, + "source": [ + "# Welcome to Colab!\n", + "\n", + "\n", + "## Access Popular LLMs via Google-Colab-AI Without an API Key\n", + "Users with Colab's paid plans have free access to most popular LLMs via google-colab-ai Python library. For more details, refer to the [getting started with google colab ai](https://colab.research.google.com/github/googlecolab/colabtools/blob/main/notebooks/Getting_started_with_google_colab_ai.ipynb).\n", + "\n", + "```\n", + "from google.colab import ai\n", + "response = ai.generate_text(\"What is the capital of France?\")\n", + "print(response)\n", + "```\n", + "\n", + "\n", + "## Explore the Gemini API\n", + "The Gemini API gives you access to Gemini models created by Google DeepMind. Gemini models are built from the ground up to be multimodal, so you can reason seamlessly across text, images, code, and audio.\n", + "\n", + "**How to get started?**\n", + "* Go to [Google AI Studio](https://aistudio.google.com/) and log in with your Google account.\n", + "* [Create an API key](https://aistudio.google.com/app/apikey).\n", + "* Use a quickstart for [Python](https://colab.research.google.com/github/google-gemini/cookbook/blob/main/quickstarts/Get_started.ipynb), or call the REST API using [curl](https://colab.research.google.com/github/google-gemini/cookbook/blob/main/quickstarts/rest/Prompting_REST.ipynb).\n", + "\n", + "**Discover Gemini's advanced capabilities**\n", + "* Play with Gemini [multimodal outputs](https://colab.research.google.com/github/google-gemini/cookbook/blob/main/quickstarts/Image-out.ipynb), mixing text and images in an iterative way.\n", + "* Discover the [multimodal Live API](https://colab.research.google.com/github/google-gemini/cookbook/blob/main/quickstarts/Get_started_LiveAPI.ipynb ) (demo [here](https://aistudio.google.com/live)).\n", + "* Learn how to [analyze images and detect items in your pictures](https://colab.research.google.com/github/google-gemini/cookbook/blob/main/quickstarts/Spatial_understanding.ipynb\") using Gemini (bonus, there's a [3D version](https://colab.research.google.com/github/google-gemini/cookbook/blob/main/examples/Spatial_understanding_3d.ipynb) as well!).\n", + "* Unlock the power of [Gemini thinking model](https://colab.research.google.com/github/google-gemini/cookbook/blob/main/quickstarts/Get_started_thinking.ipynb), capable of solving complex task with its inner thoughts.\n", + " \n", + "**Explore complex use cases**\n", + "* Use [Gemini grounding capabilities](https://colab.research.google.com/github/google-gemini/cookbook/blob/main/examples/Search_grounding_for_research_report.ipynb) to create a report on a company based on what the model can find on internet.\n", + "* Extract [invoices and form data from PDF](https://colab.research.google.com/github/google-gemini/cookbook/blob/main/examples/Pdf_structured_outputs_on_invoices_and_forms.ipynb) in a structured way.\n", + "* Create [illustrations based on a whole book](https://colab.research.google.com/github/google-gemini/cookbook/blob/main/examples/Book_illustration.ipynb) using Gemini large context window and Imagen.\n", + "\n", + "To learn more, check out the [Gemini cookbook](https://github.com/google-gemini/cookbook) or visit the [Gemini API documentation](https://ai.google.dev/docs/).\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Nma_JWh-W-IF" + }, + "source": [ + "Colab now has AI features powered by [Gemini](https://gemini.google.com). The video below provides information on how to use these features, whether you're new to Python, or a seasoned veteran.\n", + "\n", + "
\n", + " \n", + " Thumbnail for a video showing 3 AI-powered Google Colab features\n", + " \n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "5fCEDCU_qrC0" + }, + "source": [ + "
\n", + "

What is Colab?

\n", + "
\n", + "\n", + "Colab, or \"Colaboratory\", allows you to write and execute Python in your browser, with\n", + "- Zero configuration required\n", + "- Access to GPUs free of charge\n", + "- Easy sharing\n", + "\n", + "Whether you're a **student**, a **data scientist** or an **AI researcher**, Colab can make your work easier. Watch [Introduction to Colab](https://www.youtube.com/watch?v=inN8seMm7UI) or [Colab Features You May Have Missed](https://www.youtube.com/watch?v=rNgswRZ2C1Y) to learn more, or just get started below!" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "GJBs_flRovLc" + }, + "source": [ + "
\n", + "\n", + "## **Getting started**\n", + "
\n", + "\n", + "The document you are reading is not a static web page, but an interactive environment called a **Colab notebook** that lets you write and execute code.\n", + "\n", + "For example, here is a **code cell** with a short Python script that computes a value, stores it in a variable, and prints the result:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "gJr_9dXGpJ05", + "outputId": "beb4aaca-6eac-4b30-f2ff-ea4308968122" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "86400" + ] + }, + "execution_count": null, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "seconds_in_a_day = 24 * 60 * 60\n", + "seconds_in_a_day" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "2fhs6GZ4qFMx" + }, + "source": [ + "To execute the code in the above cell, select it with a click and then either press the play button to the left of the code, or use the keyboard shortcut \"Command/Ctrl+Enter\". To edit the code, just click the cell and start editing.\n", + "\n", + "Variables that you define in one cell can later be used in other cells:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "-gE-Ez1qtyIA", + "outputId": "e8f0c2b1-3c1e-4476-f8c2-d8f31cdb5e75" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "604800" + ] + }, + "execution_count": null, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "seconds_in_a_week = 7 * seconds_in_a_day\n", + "seconds_in_a_week" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "lSrWNr3MuFUS" + }, + "source": [ + "Colab notebooks allow you to combine **executable code** and **rich text** in a single document, along with **images**, **HTML**, **LaTeX** and more. When you create your own Colab notebooks, they are stored in your Google Drive account. You can easily share your Colab notebooks with co-workers or friends, allowing them to comment on your notebooks or even edit them. To learn more, see [Overview of Colab](/notebooks/basic_features_overview.ipynb). To create a new Colab notebook you can use the File menu above, or use the following link: [create a new Colab notebook](http://colab.research.google.com#create=true).\n", + "\n", + "Colab notebooks are Jupyter notebooks that are hosted by Colab. To learn more about the Jupyter project, see [jupyter.org](https://www.jupyter.org)." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "UdRyKR44dcNI" + }, + "source": [ + "
\n", + "\n", + "## Data science\n", + "
\n", + "\n", + "With Colab you can harness the full power of popular Python libraries to analyze and visualize data. The code cell below uses **numpy** to generate some random data, and uses **matplotlib** to visualize it. To edit the code, just click the cell and start editing." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "4_kCnsPUqS6o" + }, + "source": [ + "You can import your own data into Colab notebooks from your Google Drive account, including from spreadsheets, as well as from Github and many other sources. To learn more about importing data, and how Colab can be used for data science, see the links below under [Working with Data](#working-with-data)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "height": 249 + }, + "id": "C4HZx7Gndbrh", + "outputId": "65838ba2-0ea9-41b7-e3f9-a725be449d3b" + }, + "outputs": [ + { + "data": { + "text/markdown": [ + "![Sample Visualization](data:image/png;base64,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)" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import IPython.display as display\n", + "from matplotlib import pyplot as plt\n", + "import io\n", + "import base64\n", + "\n", + "ys = 200 + np.random.randn(100)\n", + "x = [x for x in range(len(ys))]\n", + "\n", + "fig = plt.figure(figsize=(4, 3), facecolor='w')\n", + "plt.plot(x, ys, '-')\n", + "plt.fill_between(x, ys, 195, where=(ys > 195), facecolor='g', alpha=0.6)\n", + "plt.title(\"Sample Visualization\", fontsize=10)\n", + "\n", + "data = io.BytesIO()\n", + "plt.savefig(data)\n", + "image = F\"data:image/png;base64,{base64.b64encode(data.getvalue()).decode()}\"\n", + "alt = \"Sample Visualization\"\n", + "display.display(display.Markdown(F\"\"\"![{alt}]({image})\"\"\"))\n", + "plt.close(fig)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "VYV91hbKwP2J" + }, + "source": [ + "Colab notebooks execute code on Google's cloud servers, meaning you can leverage the power of Google hardware, including [GPUs and TPUs](#using-accelerated-hardware), regardless of the power of your machine. All you need is a browser.\n", + "\n", + "For example, if you find yourself waiting for **pandas** code to finish running and want to go faster, you can switch to a GPU Runtime and use libraries like [RAPIDS cuDF](https://rapids.ai/cudf-pandas) that provide zero-code-change acceleration." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "vwnNlNIEwoZ8" + }, + "source": [ + "To learn more about accelerating pandas on Colab, see the [10 minute guide](https://colab.research.google.com/github/rapidsai-community/showcase/blob/main/getting_started_tutorials/cudf_pandas_colab_demo.ipynb) or\n", + " [US stock market data analysis demo](https://colab.research.google.com/github/rapidsai-community/showcase/blob/main/getting_started_tutorials/cudf_pandas_stocks_demo.ipynb)." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "OwuxHmxllTwN" + }, + "source": [ + "
\n", + "\n", + "## Machine learning\n", + "
\n", + "\n", + "With Colab you can import an image dataset, train an image classifier on it, and evaluate the model, all in just [a few lines of code](https://colab.research.google.com/github/tensorflow/docs/blob/master/site/en/tutorials/quickstart/beginner.ipynb)." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ufxBm1yRnruN" + }, + "source": [ + "Colab is used extensively in the machine learning community with applications including:\n", + "- Getting started with TensorFlow\n", + "- Developing and training neural networks\n", + "- Experimenting with TPUs\n", + "- Disseminating AI research\n", + "- Creating tutorials\n", + "\n", + "To see sample Colab notebooks that demonstrate machine learning applications, see the [machine learning examples](#machine-learning-examples) below." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-Rh3-Vt9Nev9" + }, + "source": [ + "
\n", + "\n", + "## More Resources\n", + "\n", + "### Working with Notebooks in Colab\n", + "\n", + "
\n", + "\n", + "- [Overview of Colab](/notebooks/basic_features_overview.ipynb)\n", + "- [Guide to Markdown](/notebooks/markdown_guide.ipynb)\n", + "- [Importing libraries and installing dependencies](/notebooks/snippets/importing_libraries.ipynb)\n", + "- [Saving and loading notebooks in GitHub](https://colab.research.google.com/github/googlecolab/colabtools/blob/main/notebooks/colab-github-demo.ipynb)\n", + "- [Interactive forms](/notebooks/forms.ipynb)\n", + "- [Interactive widgets](/notebooks/widgets.ipynb)\n", + "\n", + "
\n", + "\n", + "\n", + "### Working with Data\n", + "
\n", + "\n", + "- [Loading data: Drive, Sheets, and Google Cloud Storage](/notebooks/io.ipynb)\n", + "- [Charts: visualizing data](/notebooks/charts.ipynb)\n", + "- [Getting started with BigQuery](/notebooks/bigquery.ipynb)\n", + "\n", + "
\n", + "\n", + "### Machine Learning\n", + "\n", + "
\n", + "\n", + "These are a few of the notebooks related to Machine Learning, including Google's online Machine Learning course. See the [full course website](https://developers.google.com/machine-learning/crash-course/) for more.\n", + "- [Intro to Pandas DataFrame](https://colab.research.google.com/github/google/eng-edu/blob/main/ml/cc/exercises/pandas_dataframe_ultraquick_tutorial.ipynb)\n", + "- [Intro to RAPIDS cuDF to accelerate pandas](https://nvda.ws/rapids-cudf)\n", + "- [Getting Started with cuML's accelerator mode](https://colab.research.google.com/github/rapidsai-community/showcase/blob/main/getting_started_tutorials/cuml_sklearn_colab_demo.ipynb)\n", + "- [Linear regression with tf.keras using synthetic data](https://colab.research.google.com/github/google/eng-edu/blob/main/ml/cc/exercises/linear_regression_with_synthetic_data.ipynb)\n", + "\n", + "
\n", + "\n", + "\n", + "### Using Accelerated Hardware\n", + "
\n", + "\n", + "- [TensorFlow with GPUs](/notebooks/gpu.ipynb)\n", + "- [TPUs in Colab](/notebooks/tpu.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "P-H6Lw1vyNNd" + }, + "source": [ + "
\n", + "\n", + "\n", + "\n", + "### Featured examples\n", + "\n", + "
\n", + "\n", + "- [Retraining an Image Classifier](https://tensorflow.org/hub/tutorials/tf2_image_retraining): Build a Keras model on top of a pre-trained image classifier to distinguish flowers.\n", + "- [Text Classification](https://tensorflow.org/hub/tutorials/tf2_text_classification): Classify IMDB movie reviews as either *positive* or *negative*.\n", + "- [Style Transfer](https://tensorflow.org/hub/tutorials/tf2_arbitrary_image_stylization): Use deep learning to transfer style between images.\n", + "- [Multilingual Universal Sentence Encoder Q&A](https://tensorflow.org/hub/tutorials/retrieval_with_tf_hub_universal_encoder_qa): Use a machine learning model to answer questions from the SQuAD dataset.\n", + "- [Video Interpolation](https://tensorflow.org/hub/tutorials/tweening_conv3d): Predict what happened in a video between the first and the last frame.\n" + ] + }, + { + "cell_type": "code", + "source": [], + "metadata": { + "id": "p0vNPYHsz3C0" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.\n", + "\n", + "You may assume that each input would have exactly one solution, and you may not use the same element twice.\n", + "\n", + "You can return the answer in any order.\n", + "\n", + "\n", + "\n", + "Example 1:\n", + "\n", + "Input: nums = [2,7,11,15], target = 9\n", + "Output: [0,1]\n", + "Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].\n", + "Example 2:\n", + "\n", + "Input: nums = [3,2,4], target = 6\n", + "Output: [1,2]\n", + "Example 3:\n", + "\n", + "Input: nums = [3,3], target = 6\n", + "Output: [0,1]" + ], + "metadata": { + "id": "S_SIQ9Bh0500" + } + }, + { + "cell_type": "code", + "source": [ + "import numpy as np\n", + "import pandas as pd" + ], + "metadata": { + "id": "3Fv1wSU5z3eZ" + }, + "execution_count": 37, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "nums = [2,7,11,15]" + ], + "metadata": { + "id": "IYfwcrho1Lh4" + }, + "execution_count": 38, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "target = []" + ], + "metadata": { + "id": "KyqC28-c1A9t" + }, + "execution_count": 39, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "for i in range(len(nums)):\n", + " for j in range(i+1, len(nums)):\n", + " if nums[i] + nums[j] == 9:\n", + " target.append(i)\n", + " target.append(j)\n", + " else:\n", + " pass\n", + "\n", + "" + ], + "metadata": { + "id": "G-xzdv8p1IZM" + }, + "execution_count": 40, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "target" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "6tsDDDDm25qq", + "outputId": "46e264e8-322f-4e8d-f2ec-8908165d62f7" + }, + "execution_count": 41, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "[0, 1]" + ] + }, + "metadata": {}, + "execution_count": 41 + } + ] + }, + { + "cell_type": "code", + "source": [], + "metadata": { + "id": "d3vWKDtQ3Mvz" + }, + "execution_count": null, + "outputs": [] + } + ], + "metadata": { + "colab": { + "name": "Welcome To Colab", + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file