diff --git a/Untitled2.ipynb b/Untitled2.ipynb new file mode 100644 index 0000000..fe4a5d7 --- /dev/null +++ b/Untitled2.ipynb @@ -0,0 +1,473 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Untitled2.ipynb", + "version": "0.3.2", + "provenance": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "metadata": { + "id": "RMYqjM3fK42C", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 374 + }, + "outputId": "63f95807-266d-4ac6-917a-ddafbfd11962" + }, + "cell_type": "code", + "source": [ + "# The Zen of Python\n", + "import this" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "The Zen of Python, by Tim Peters\n", + "\n", + "Beautiful is better than ugly.\n", + "Explicit is better than implicit.\n", + "Simple is better than complex.\n", + "Complex is better than complicated.\n", + "Flat is better than nested.\n", + "Sparse is better than dense.\n", + "Readability counts.\n", + "Special cases aren't special enough to break the rules.\n", + "Although practicality beats purity.\n", + "Errors should never pass silently.\n", + "Unless explicitly silenced.\n", + "In the face of ambiguity, refuse the temptation to guess.\n", + "There should be one-- and preferably only one --obvious way to do it.\n", + "Although that way may not be obvious at first unless you're Dutch.\n", + "Now is better than never.\n", + "Although never is often better than *right* now.\n", + "If the implementation is hard to explain, it's a bad idea.\n", + "If the implementation is easy to explain, it may be a good idea.\n", + "Namespaces are one honking great idea -- let's do more of those!\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "0De_ykwDK9Vv", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "0c9d3b7d-59ea-4992-b812-fe393f62f3d6" + }, + "cell_type": "code", + "source": [ + "# Comments\n", + "# This is a python tutorial and a single line comment\n", + "''' This is a multiline comment\n", + " pretty awesome!!\n", + " Let me introduce you to jennifer!'''" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "' This is a multiline comment\\n pretty awesome!!\\n Let me introduce you to jennifer!'" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 2 + } + ] + }, + { + "metadata": { + "id": "aN-Tp9iAK_8C", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# Simple imports\n", + "import math\n", + "import random" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "ipzew6nNLC4O", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# importing specific functions from modules\n", + "# imports just the factorial function from math\n", + "from math import factorial\n", + "\n", + "# imports all the functions from math\n", + "from math import *" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "F0Ih7uLdLFHW", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# Giving aliases\n", + "# The Module name is alaised\n", + "import math as m\n", + "\n", + "# The function name is alaised\n", + "from math import factorial as fact" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "MCzEeRLZLIhQ", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "bf077b54-3c8e-448f-fcca-5bbbd02b4a75" + }, + "cell_type": "code", + "source": [ + "# Calling imported functions\n", + "# If you import the module you have to call the functions from the module\n", + "import math\n", + "print (math.factorial(12))\n", + "\n", + "# If you import the functions you can call the function as if it is in your program\n", + "from random import randrange as rg\n", + "print (rg(23, 1000))" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "479001600\n", + "860\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "senls-o8LLxP", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# Variables\n", + "msg = \"Python!\" # String\n", + "v2 = 'Python!' # Also String works same\n", + "v1 = 2 # Numbers\n", + "v3 = 3.564 # Floats / Doubles\n", + "v4 = True # Boolean (True / False)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "Xt60hODtLOzG", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 119 + }, + "outputId": "cc5bc681-9d5b-4bf5-e9f7-3e65146cdcab" + }, + "cell_type": "code", + "source": [ + "# print() \n", + "# automatically adds a newline\n", + "print (msg)\n", + "print (v2)\n", + "print (v1)\n", + "print (v3)\n", + "print (v4)\n", + "print (\"Hello Python!\")" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Python!\n", + "Python!\n", + "2\n", + "3.564\n", + "True\n", + "Hello Python!\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "QledXmpwLRQp", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + }, + "outputId": "da2d6b74-c94c-40fb-ee0b-37fefa7c4b25" + }, + "cell_type": "code", + "source": [ + "# Note: Both \" and ' can be used to make strings. And this flexibility allows for the following:\n", + "msg2 = 'Jennifer said, \"I love Python!\"'\n", + "msg3 = \"After that Jennifer's Python Interpreter said it back to her!\"\n", + "msg4 = 'Of Course she used the command `print(\"I love Jennifer\")`'\n", + "\n", + "print (msg2)\n", + "print (msg3)\n", + "print (msg4)" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Jennifer said, \"I love Python!\"\n", + "After that Jennifer's Python Interpreter said it back to her!\n", + "Of Course she used the command `print(\"I love Jennifer\")`\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "sRS9zreyLZv5", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "c0d368b7-17f9-45bc-b95b-68599561c38e" + }, + "cell_type": "code", + "source": [ + "# input()\n", + "msg = input()" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "124567\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "hE0_F3dZLfnw", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "e33f5781-3289-4bb1-8390-dda5ec117b9f" + }, + "cell_type": "code", + "source": [ + "# input() with message\n", + "msg = input (\"Provide some input: \")\n", + "print (msg)" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Provide some input: 5248\n", + "5248\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "nqMe_kZJLiBL", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "ad9fec0d-8e27-4324-b864-9dfc4c1f17c0" + }, + "cell_type": "code", + "source": [ + "# Check for specific input without storing it\n", + "if input(\"Enter something: \") == \"something\":\n", + " print (\"Something something\")\n", + "else: print (\"Not Something\")" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Enter something: 2548\n", + "Not Something\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "lLjsTa2nL6p6", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 85 + }, + "outputId": "4ae5d653-f264-4a4e-81c3-bde95a4a8bc9" + }, + "cell_type": "code", + "source": [ + "# Python takes every input as a string\n", + "# So, if required you can convert to the required type\n", + "msg = input(\"Enter a number: \")\n", + "print (type(msg))\n", + "\n", + "msg = int(input (\"Enter a number again, if not a number this will throw an error: \"))\n", + "print (type(msg))" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Enter a number: 258852\n", + "\n", + "Enter a number again, if not a number this will throw an error: 258\n", + "\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "XFf3Z6MZL_Pe", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 340 + }, + "outputId": "724f267c-2e91-49b8-d98d-03bd70a26e40" + }, + "cell_type": "code", + "source": [ + "# Basic Arithmetic operations\n", + "# Add\n", + "print (3 + 2)\n", + "print (3.4565 + 56.232)\n", + "print ('------------')\n", + "\n", + "# Subtract\n", + "print (3 - 4)\n", + "print (34.56 - 3.78)\n", + "print ('------------')\n", + "\n", + "# Multiply\n", + "print (4 * 3)\n", + "print (7.56 * 34)\n", + "print ('------------')\n", + "\n", + "# Division\n", + "print (5 / 2)\n", + "print (5.0 / 2)\n", + "print (5 / 2.0)\n", + "print (25.0 / 5)\n", + "print ('------------')\n", + "\n", + "# Exponents\n", + "print (4 ** 4)\n", + "print (5.67 ** 3)\n", + "print ('------------')\n", + "\n", + "# Modulo\n", + "print (10%3)\n", + "print (10%11)" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "5\n", + "59.6885\n", + "------------\n", + "-1\n", + "30.78\n", + "------------\n", + "12\n", + "257.03999999999996\n", + "------------\n", + "2.5\n", + "2.5\n", + "2.5\n", + "5.0\n", + "------------\n", + "256\n", + "182.28426299999998\n", + "------------\n", + "1\n", + "10\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "MArOl2rqMAb9", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + } + ] +} \ No newline at end of file diff --git a/Untitled3.ipynb b/Untitled3.ipynb new file mode 100644 index 0000000..7dca4bf --- /dev/null +++ b/Untitled3.ipynb @@ -0,0 +1,416 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Untitled3.ipynb", + "version": "0.3.2", + "provenance": [], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "[View in Colaboratory](https://colab.research.google.com/github/ASIF8240233397/Assignment-1/blob/ASIF8240233397/Untitled3.ipynb)" + ] + }, + { + "metadata": { + "id": "FcQsudSxOuvt", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "7f163ba3-082a-4f5e-d4e8-dd9ab54f086f" + }, + "cell_type": "code", + "source": [ + "# if..else\n", + "v1 = 5\n", + "if v1 == 5:\n", + " print (v1)\n", + "else:\n", + " print (\"v1 is not 5\")" + ], + "execution_count": 1, + "outputs": [ + { + "output_type": "stream", + "text": [ + "5\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "rwo0T-SiP2vz", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "7f4ce049-c152-4ec3-c30e-4c5234194127" + }, + "cell_type": "code", + "source": [ + "# if..elif..else\n", + "s1 = \"Jennifer\"\n", + "s2 = \"loves\"\n", + "s3 = \"Python\"\n", + "if s1 == \"Python\":\n", + " print (\"s1 is Python\")\n", + "elif s2 == \"Jennifer\":\n", + " print (\"s2 is Jennifer\")\n", + "elif s1 == \"loves\":\n", + " print (\"s1 is loves\")\n", + "else:\n", + " print (\"Jennifer loves Python!\")" + ], + "execution_count": 2, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Jennifer loves Python!\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "hBAvolikP96c", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "076c79ca-45c3-497d-84ee-ad534e7600b7" + }, + "cell_type": "code", + "source": [ + "# One liner\n", + "v1 = 5\n", + "x = 10 if v1 == 5 else 13\n", + "print (x)" + ], + "execution_count": 3, + "outputs": [ + { + "output_type": "stream", + "text": [ + "10\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "K4vF9PkqQBCi", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 265 + }, + "outputId": "90a77271-9ded-43cf-e072-43b0457f6bc5" + }, + "cell_type": "code", + "source": [ + "# Let's see the conditionals available\n", + "v1 = \"Jennifer\"\n", + "v2 = \"Python\"\n", + "v3 = 45\n", + "v4 = 67\n", + "v5 = 45\n", + "\n", + "# Test for equality\n", + "print (v1 == v2)\n", + "\n", + "# Test for greater than and greater than equal\n", + "print (v4 > v3)\n", + "print (v5 >= v2)\n", + "\n", + "# Test for lesser than and lesser than equal\n", + "print (v4 < v3)\n", + "print (v5 <= v2)\n", + "\n", + "# Inequality\n", + "print (v1 != v2)" + ], + "execution_count": 4, + "outputs": [ + { + "output_type": "stream", + "text": [ + "False\n", + "True\n" + ], + "name": "stdout" + }, + { + "output_type": "error", + "ename": "TypeError", + "evalue": "ignored", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[0;31m# Test for greater than and greater than equal\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 11\u001b[0m \u001b[0mprint\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mv4\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0mv3\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 12\u001b[0;31m \u001b[0mprint\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mv5\u001b[0m \u001b[0;34m>=\u001b[0m \u001b[0mv2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 13\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 14\u001b[0m \u001b[0;31m# Test for lesser than and lesser than equal\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mTypeError\u001b[0m: '>=' not supported between instances of 'int' and 'str'" + ] + } + ] + }, + { + "metadata": { + "id": "WJIAMUEqQU3G", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "49452707-4d35-41a8-aa17-1f0bbb415d63" + }, + "cell_type": "code", + "source": [ + "# Note:\n", + "v1 = 45\n", + "v2 = \"45\"\n", + "print (v1 == v2) # False\n", + "print (str(v1) == v2) # True" + ], + "execution_count": 5, + "outputs": [ + { + "output_type": "stream", + "text": [ + "False\n", + "True\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "g2j5yT55QaAi", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + }, + "outputId": "eba2e16b-faf0-4fba-8022-7565e3484bd6" + }, + "cell_type": "code", + "source": [ + "# Ignore case when comparing two strings\n", + "s1 = \"Jennifer\"\n", + "s2 = \"jennifer\"\n", + "\n", + "print (s1 == s2) # False\n", + "print (s1.lower() == s2.lower()) # True\n", + "# OR\n", + "print (s1.upper() == s2.upper()) # True" + ], + "execution_count": 6, + "outputs": [ + { + "output_type": "stream", + "text": [ + "False\n", + "True\n", + "True\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "qz4GsBUbQdwV", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "a3def0c0-6171-44a5-e86c-9c6a4b8e53f3" + }, + "cell_type": "code", + "source": [ + "# Checking multiple conditions 'and' and 'or'\n", + "v1 = \"Jennifer\"\n", + "v2 = \"Python\"\n", + "\n", + "# 'and' -> evaluates true when both conditions are True\n", + "print (v1 == \"Jennifer\" and v2 == \"Python\")\n", + "# 'or' -> evaluates true when any one condition is True\n", + "print (v1 == \"Python\" or v2 == \"Python\")" + ], + "execution_count": 7, + "outputs": [ + { + "output_type": "stream", + "text": [ + "True\n", + "True\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "ZcU8N9F3QhJJ", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "1463cfcb-0209-473a-edf6-4dae54c48da3" + }, + "cell_type": "code", + "source": [ + "s1 = \"Jennifer\"\n", + "s2 = \"Python\"\n", + "\n", + "print (s1 > s2) # True -> since 'Jennifer' comes lexographically before 'Python'" + ], + "execution_count": 8, + "outputs": [ + { + "output_type": "stream", + "text": [ + "False\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "Z5oha0OiQn16", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 85 + }, + "outputId": "8c478dbf-b6da-4afc-a361-c6e990e36929" + }, + "cell_type": "code", + "source": [ + "# Check whether a value is in a list -> 'in'\n", + "l1 = [23, 45, 67, \"Jennifer\", \"Python\", 'A']\n", + "\n", + "print (23 in l1)\n", + "print ('A' in l1)\n", + "print (\"Python\" in l1)\n", + "print (32 in l1)" + ], + "execution_count": 9, + "outputs": [ + { + "output_type": "stream", + "text": [ + "True\n", + "True\n", + "True\n", + "False\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "-lZ8zl0UQpwg", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "3c9447f7-2241-4f4e-8f3b-19729d77ad9d" + }, + "cell_type": "code", + "source": [ + "# Putting it together\n", + "l1 = [23, 1, 'A', \"Jennifer\", 9.34]\n", + "\n", + "# This is True, so the other statements are not checked\n", + "if 23 in l1 and 'B' not in l1: # Note: use of 'not'\n", + " print (\"1\")\n", + "elif 23 >= l1[0]: # True\n", + " print (\"2\")\n", + "elif 2.45 < l1[-1]: # True\n", + " print (\"3\")" + ], + "execution_count": 10, + "outputs": [ + { + "output_type": "stream", + "text": [ + "1\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "BWhED1oAQuS2", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "8777d93b-0f98-4878-e352-641af626c611" + }, + "cell_type": "code", + "source": [ + "# Checking if list is empty\n", + "l1 = []\n", + "l2 = [\"Jennifer\"]\n", + "\n", + "if l1:\n", + " print (1)\n", + "elif l2:\n", + " print (2)" + ], + "execution_count": 11, + "outputs": [ + { + "output_type": "stream", + "text": [ + "2\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "xRzBTlOjQxKR", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + } + ] +} \ No newline at end of file diff --git a/Untitled4.ipynb b/Untitled4.ipynb new file mode 100644 index 0000000..eb24434 --- /dev/null +++ b/Untitled4.ipynb @@ -0,0 +1,291 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Untitled4.ipynb", + "version": "0.3.2", + "provenance": [], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "[View in Colaboratory](https://colab.research.google.com/github/ASIF8240233397/Assignment-1/blob/ASIF8240233397/Untitled4.ipynb)" + ] + }, + { + "metadata": { + "id": "OL6c8amtTUaD", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 119 + }, + "outputId": "4d45a09c-01b6-4b3b-90c4-e884cc97ac44" + }, + "cell_type": "code", + "source": [ + "# Simple while\n", + "# Loop runs till the condition is True\n", + "v1 = 5\n", + "while v1 <= 10:\n", + " print (v1)\n", + " v1 += 1" + ], + "execution_count": 1, + "outputs": [ + { + "output_type": "stream", + "text": [ + "5\n", + "6\n", + "7\n", + "8\n", + "9\n", + "10\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "qLs4URYsTdRs", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# Infinite Loops\n", + "while 1:\n", + " print (1)\n", + " \n", + "while True:\n", + " print (1)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "9dbJ6GU-TgVm", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "2098c86e-161e-4f84-e794-16a0ec0e6b1c" + }, + "cell_type": "code", + "source": [ + "# One Liner while\n", + "v1 = 0\n", + "while v1 <= 40: v1 += 1\n", + "print (v1)" + ], + "execution_count": 3, + "outputs": [ + { + "output_type": "stream", + "text": [ + "41\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "nRh8cLVTTqcO", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "ac619988-f986-4d72-e401-30aa56bb2cd2" + }, + "cell_type": "code", + "source": [ + "v1 = 2\n", + "++v1\n", + "++v1\n", + "print (v1)" + ], + "execution_count": 4, + "outputs": [ + { + "output_type": "stream", + "text": [ + "2\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "oLznfARXTvKn", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# Terminate loop on a certain user input\n", + "# Note: The loop will break only when the user inputs 100\n", + "v1 = 1\n", + "while v1 != 100:\n", + " v1 = int(input(\"Enter new v1: \"))\n", + " print (\"v1 modified to: \" + str(v1))" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "9SBSiHiGT3ia", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# 'break' -> breaks out of loop, doesn't execute any statement after it\n", + "while 1:\n", + " v1 = int(input())\n", + " if v1 == 100: \n", + " break;\n", + " print (v1)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "pF7mmykoT9he", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# 'continue' -> continues to next iteration, skips all statements after it for that iteration\n", + "# Note: When 'v1' < 100 the last print statement is skipped and the control moves to the next iteration\n", + "while 1:\n", + " print (\"Iteration begins\")\n", + " v1 = int(input())\n", + " if v1 == 100:\n", + " break;\n", + " elif v1 < 100:\n", + " print (\"v1 less than 100\")\n", + " continue;\n", + " print (\"Iteration complete\")" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "oWWDTaY9UHNv", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "f9853ef4-0d82-4127-b415-d2eddd09e9f9" + }, + "cell_type": "code", + "source": [ + "# while with lists\n", + "l1 = [\"Jennifer\", 12, \"Python\", 'A', 56, 'B', 2.12, \"Scarlett\"]\n", + "l2 = []\n", + "i = 0\n", + "while i < len(l1):\n", + " if type(l1[i]) == int:\n", + " l2.append(l1[i])\n", + " i += 1\n", + "print (l2)" + ], + "execution_count": 8, + "outputs": [ + { + "output_type": "stream", + "text": [ + "[12, 56]\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "Qxh7TMd6UKEA", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "74503dc7-4707-4f3e-ef60-210abb272d16" + }, + "cell_type": "code", + "source": [ + "# Removing all instances of a specific value in list\n", + "l1 = ['A', 'B', 'C', 'D', 'A', 'E', 'Q', 'A', 'Z', 'A', 'Q', 'D', 'A']\n", + "while 'A' in l1: l1.remove('A')\n", + "print (l1)" + ], + "execution_count": 9, + "outputs": [ + { + "output_type": "stream", + "text": [ + "['B', 'C', 'D', 'E', 'Q', 'Z', 'Q', 'D']\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "4gv8cxRlUOPF", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 90 + }, + "outputId": "0be2db46-ca04-4698-c835-d42574d6e07b" + }, + "cell_type": "code", + "source": [ + "# Filing a dictionary\n", + "d1 = {}\n", + "while 1:\n", + " key = input(\"Enter a key: \")\n", + " value = input(\"Enter a value: \")\n", + " d1[key] = value;\n", + " if input(\"exit? \") == \"yes\": break;\n", + "print (d1)" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Enter a key: ASU\n", + "Enter a value: 250\n", + "exit? 25\n" + ], + "name": "stdout" + } + ] + } + ] +} \ No newline at end of file diff --git a/Untitled5.ipynb b/Untitled5.ipynb new file mode 100644 index 0000000..c418b78 --- /dev/null +++ b/Untitled5.ipynb @@ -0,0 +1,298 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Untitled5.ipynb", + "version": "0.3.2", + "provenance": [], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "[View in Colaboratory](https://colab.research.google.com/github/ASIF8240233397/Assignment-1/blob/ASIF8240233397/Untitled5.ipynb)" + ] + }, + { + "metadata": { + "id": "3Y0DTuD0V_hg", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# Import the string module to get all the in-built helper methods for string\n", + "import string" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "440EE-LdWFfz", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + }, + "outputId": "c39aec50-6bdf-497c-ab7c-132b28e65356" + }, + "cell_type": "code", + "source": [ + "# Case change of string variables\n", + "name = \"jennifEr loves Python\"\n", + "\n", + "# Title case\n", + "name_t = name.title() \n", + "print (name_t)\n", + "\n", + "# Upper case\n", + "name_t = name.upper() \n", + "print (name_t)\n", + "\n", + "# Lower case\n", + "name_t = name.lower() \n", + "print (name_t)" + ], + "execution_count": 2, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Jennifer Loves Python\n", + "JENNIFER LOVES PYTHON\n", + "jennifer loves python\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "druqRLXEWHlP", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + }, + "outputId": "24b83eac-970f-486b-811b-8cc8788afebd" + }, + "cell_type": "code", + "source": [ + "# String Concatenation\n", + "fname = \"jennifer\"\n", + "lname = \"python\"\n", + "flname = fname + \" \" + lname\n", + "\n", + "print (fname + \" \" + lname)\n", + "print (\"Jennifer\" + \" \" + \"Python\")\n", + "# OR equivalently\n", + "print (flname.title())" + ], + "execution_count": 3, + "outputs": [ + { + "output_type": "stream", + "text": [ + "jennifer python\n", + "Jennifer Python\n", + "Jennifer Python\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "p16MKRFJWbZA", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 119 + }, + "outputId": "ea1b279f-5d07-4d44-f4ac-ea84351216cd" + }, + "cell_type": "code", + "source": [ + "# Adding WhiteSpaces\n", + "print (\"Jen\\nloves\\npython\")\n", + "print (\"Jen\\tloves\\tpython\")\n", + "print (\"Jen\\tloves\\npython\")" + ], + "execution_count": 4, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Jen\n", + "loves\n", + "python\n", + "Jen\tloves\tpython\n", + "Jen\tloves\n", + "python\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "I752ZTRoWd-Q", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 136 + }, + "outputId": "c46b272c-16ab-4b1b-e664-c9e8d100af59" + }, + "cell_type": "code", + "source": [ + "# Stripping Whitespace\n", + "name1 = \" Jennifer\"\n", + "name2 = \"Jennifer \"\n", + "name3 = \" Jennifer \"\n", + "\n", + "print (name1)\n", + "print (name2)\n", + "print (name3)\n", + "print (\"----------\")\n", + "print (name1.lstrip()) # lstrip() takes all extra whitespaces from left\n", + "print (name2.rstrip()) # rstrip() takes all extra whitespaces from right\n", + "print (name3.strip()) # strip() takes all extra whitespaces from both left and right" + ], + "execution_count": 5, + "outputs": [ + { + "output_type": "stream", + "text": [ + " Jennifer\n", + "Jennifer \n", + " Jennifer \n", + "----------\n", + "Jennifer\n", + "Jennifer\n", + "Jennifer\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "HPgA0SW2WhEx", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "ed0f3f69-3d12-43c7-ca0a-761cabc669bc" + }, + "cell_type": "code", + "source": [ + "# str() -> casts other data types to string\n", + "jensage = 21\n", + "# print (\"Jennifer's age is \" + jensage) ## This is an error as one cannot concatenate string and integer\n", + "print (\"Jennifer's age is \" + str(jensage)) # This works!" + ], + "execution_count": 6, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Jennifer's age is 21\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "XAzLWUr-WlNq", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + }, + "outputId": "85f622be-a3b8-4e6e-d0c3-7f9a1189da30" + }, + "cell_type": "code", + "source": [ + "# Lists, Dictionaries, Tuples and other objects can be casted to String\n", + "l_langs = [\"Python\", \"R\", \"Julia\"] # List\n", + "t_langs = (\"Python\", \"R\", \"Julia\") # Tuple\n", + "d_langs = {1: \"Python\", 2: \"R\", 3: \"Julia\"} # Dictionary\n", + "\n", + "print (\"This is a list: \" + str(l_langs))\n", + "print (\"This is a tuple: \" + str(t_langs))\n", + "print (\"This is a dictionary: \" + str(d_langs))" + ], + "execution_count": 7, + "outputs": [ + { + "output_type": "stream", + "text": [ + "This is a list: ['Python', 'R', 'Julia']\n", + "This is a tuple: ('Python', 'R', 'Julia')\n", + "This is a dictionary: {1: 'Python', 2: 'R', 3: 'Julia'}\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "s1vP3tKTWr09", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 204 + }, + "outputId": "c4ea5cb0-4a43-4035-9822-5c3babfb8a81" + }, + "cell_type": "code", + "source": [ + "# Some helpful constants built-in the string module\n", + "print (\"All Letters: \" + string.ascii_letters)\n", + "print (\"Lowecase: \" + string.ascii_lowercase)\n", + "print (\"Uppercase: \" + string.ascii_uppercase)\n", + "print (\"Punctuations: \" + string.punctuation)\n", + "print (\"Numbers: \" + string.digits)\n", + "print (\"Hex Digits: \" + string.hexdigits)\n", + "print (\"Oct Digits: \" + string.octdigits)\n", + "print (\"Whitespace: \" + string.whitespace)\n", + "print (\"Printable: \" + string.printable)" + ], + "execution_count": 8, + "outputs": [ + { + "output_type": "stream", + "text": [ + "All Letters: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\n", + "Lowecase: abcdefghijklmnopqrstuvwxyz\n", + "Uppercase: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n", + "Punctuations: !\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\n", + "Numbers: 0123456789\n", + "Hex Digits: 0123456789abcdefABCDEF\n", + "Oct Digits: 01234567\n", + "Whitespace: \t\n", + "\r\u000b\f\n", + "Printable: 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n", + "\r\u000b\f\n" + ], + "name": "stdout" + } + ] + } + ] +} \ No newline at end of file diff --git a/WEEK1CLASSES10.ipynb b/WEEK1CLASSES10.ipynb new file mode 100644 index 0000000..16c2d4f --- /dev/null +++ b/WEEK1CLASSES10.ipynb @@ -0,0 +1,382 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Untitled10.ipynb", + "version": "0.3.2", + "provenance": [], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "[View in Colaboratory](https://colab.research.google.com/github/ASIF8240233397/Assignment-1/blob/ASIF8240233397/WEEK1CLASSES10.ipynb)" + ] + }, + { + "metadata": { + "id": "pcVaggGtho5O", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# Simple class\n", + "class Programmer():\n", + " \"\"\"This is called a docstring. This class is to create a Programmer. \n", + " Functions inside a class is called a method.\n", + " Methods are automatically passed the 'self' argument. \n", + " Any variable prefixed with 'self.' is available to the class.\n", + " We will also be able to access this self prefixed variables from any instance of the class.\"\"\"\n", + " \n", + " def __init__(self, name, age, *known_languages):\n", + " \"\"\"__init__ is a special method that Python automatically calls \n", + " when a new instance of the class is created. \"\"\"\n", + " self.name = name\n", + " self.age = age\n", + " self.languages = set(known_languages)\n", + " \n", + " # Default value for a class variable\n", + " self.concepts_revised = 0\n", + " \n", + " def add_new_language(self, lang):\n", + " self.languages.add(lang)\n", + " print (str(self.name) + \" knows a new language : \" + str(lang) + \" !!\")\n", + " \n", + " def revise_concept(self, concept):\n", + " self.concepts_revised += 1\n", + " print (str(self.name) + \" just revised \" + str(concept) + \" !!\")\n", + " \n", + " def languages_known(self):\n", + " return list(self.languages)\n", + " \n", + " def cv(self):\n", + " print (\"Name : \" + str(self.name))\n", + " print (\"Age : \" + str(self.age))\n", + " print (\"Skills : \" + str(self.languages))" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "krDSg0mfhwJG", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# Creating an instance of the class\n", + "# This calls the __init__() method\n", + "a_programmer = Programmer(\"Jennifer\", 21, \"Python\", \"R\", \"Julia\")" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "YlvtJsOmh03j", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + }, + "outputId": "58a4d38c-fd51-4758-930d-c7a3c5cdc4e3" + }, + "cell_type": "code", + "source": [ + "# Accessing the attributes\n", + "print (a_programmer.name.title())\n", + "print (a_programmer.age)\n", + "print (a_programmer.languages)" + ], + "execution_count": 5, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Jennifer\n", + "21\n", + "{'Julia', 'R', 'Python'}\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "h0PN4sxSh3dQ", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 153 + }, + "outputId": "726c38b6-76f1-4ebe-bf8e-30801d7e286e" + }, + "cell_type": "code", + "source": [ + "# Calling Methods\n", + "a_programmer.add_new_language(\"Ruby\")\n", + "print (a_programmer.languages)\n", + "\n", + "print (\"\\nCV for \" + str(a_programmer.name.title()) + \"\\n=================\")\n", + "a_programmer.cv()" + ], + "execution_count": 6, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Jennifer knows a new language : Ruby !!\n", + "{'Julia', 'R', 'Ruby', 'Python'}\n", + "\n", + "CV for Jennifer\n", + "=================\n", + "Name : Jennifer\n", + "Age : 21\n", + "Skills : {'Julia', 'R', 'Ruby', 'Python'}\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "-MMxV19Vh8iY", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 221 + }, + "outputId": "afcc68f3-d4f1-4573-8069-3edafb963f2f" + }, + "cell_type": "code", + "source": [ + "# Creating multiple instances\n", + "b_programmer = Programmer (\"Scarlett\", 21, \"Python\", \"Julia\", \"SPLUS\", \"Ruby\")\n", + "c_programmer = Programmer (\"Ariel\", 20, \"C++\", \"Java\", \"Python\")\n", + "\n", + "print (\"\\nCV for \" + str(b_programmer.name.title()) + \"\\n=================\")\n", + "b_programmer.cv()\n", + "\n", + "print (\"\\nCV for \" + str(c_programmer.name.title()) + \"\\n=================\")\n", + "c_programmer.cv()" + ], + "execution_count": 7, + "outputs": [ + { + "output_type": "stream", + "text": [ + "\n", + "CV for Scarlett\n", + "=================\n", + "Name : Scarlett\n", + "Age : 21\n", + "Skills : {'Julia', 'Ruby', 'SPLUS', 'Python'}\n", + "\n", + "CV for Ariel\n", + "=================\n", + "Name : Ariel\n", + "Age : 20\n", + "Skills : {'C++', 'Java', 'Python'}\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "4qhvzn5Mh8lQ", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "63bff6ab-1d35-4b7d-95d6-a76a192abe9a" + }, + "cell_type": "code", + "source": [ + "# Directly modifying Attribute's value\n", + "print (\"Concepts Revised by \" + str(b_programmer.name.title()) + \" : \" + str(b_programmer.concepts_revised))\n", + "b_programmer.concepts_revised += 10\n", + "print (\"Concepts Revised by \" + str(b_programmer.name.title()) + \" : \" + str(b_programmer.concepts_revised))" + ], + "execution_count": 8, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Concepts Revised by Scarlett : 0\n", + "Concepts Revised by Scarlett : 10\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "wrAI-tjuh8p9", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 119 + }, + "outputId": "697a9905-4162-40f3-d683-eab73ba454ce" + }, + "cell_type": "code", + "source": [ + "# Modifying Attribute's value through a method\n", + "print (\"\\nConcepts Revised by \" + str(c_programmer.name.title()) + \" : \" + str(c_programmer.concepts_revised))\n", + "c_programmer.revise_concept(\"Python Lists\")\n", + "c_programmer.revise_concept(\"Python Tuples\")\n", + "c_programmer.revise_concept(\"Python Dictionaries\")\n", + "print (\"Concepts Revised by \" + str(c_programmer.name.title()) + \" : \" + str(c_programmer.concepts_revised))" + ], + "execution_count": 9, + "outputs": [ + { + "output_type": "stream", + "text": [ + "\n", + "Concepts Revised by Ariel : 0\n", + "Ariel just revised Python Lists !!\n", + "Ariel just revised Python Tuples !!\n", + "Ariel just revised Python Dictionaries !!\n", + "Concepts Revised by Ariel : 3\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "wFt0T6bBh8s0", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# Inheritance\n", + "'''\n", + "Programmer => Parent Class\n", + "Developer => Child Class\n", + "\n", + "Child class inherits from the base class.\n", + "The classes share a IS A relationship.\n", + "So, in this case, Developer IS A Programmer.\n", + "It has available all methods and variables from the parent class.\n", + "And can define methods and variables of its own.\n", + "'''\n", + "class Developer(Programmer):\n", + " def __init__(self, name, age, expertise, yoe, *known_languages):\n", + " \n", + " # Call the parent class to initialize and give the child class an instance of the parent\n", + " super().__init__(name, age, known_languages)\n", + " self.expertise = expertise\n", + " self.years_of_experience = yoe\n", + " \n", + " def specializes_in(self):\n", + " return self.expertise\n", + " \n", + " def cv(self):\n", + " \"\"\"\n", + " This method overrides the cv() method in the parent class.\n", + " Any method in child class with same name as a method inherited from parent class\n", + " overrides the parent class method.\n", + " \"\"\"\n", + " print (\"Name : \" + str(self.name))\n", + " print (\"Age : \" + str(self.age))\n", + " print (\"Skills : \" + str(self.languages))\n", + " print (\"Expertise : \" + str(self.expertise))\n", + " print (\"Years of Experience : \" + str(self.years_of_experience))" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "7Zp-alP3iNDS", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# Creating an instance of the child class\n", + "a_developer = Developer (\"Jennifer\", 21, \"Android\", 2, \"Java\", \"Kotlin\", \"Python\", \"R\")" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "iFZ8bppoiRQX", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + }, + "outputId": "69e06731-0f69-4d15-e04d-ebcd7fa8c8a8" + }, + "cell_type": "code", + "source": [ + "# Call to methods and variables from the child as well as parent class\n", + "print (str(a_developer.name) + \" specializes in \" + str(a_developer.specializes_in()) + \".\")\n", + "print (str(a_developer.name) + \" can code in \" + str(a_developer.languages_known()) + \".\")\n", + "print (str(a_developer.name) + \" has \" + str(a_developer.years_of_experience) + \" years of experience.\")" + ], + "execution_count": 13, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Jennifer specializes in Android.\n", + "Jennifer can code in [('Java', 'Kotlin', 'Python', 'R')].\n", + "Jennifer has 2 years of experience.\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "TbiHdZ84iRTO", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 102 + }, + "outputId": "975ead63-a30b-44b2-da29-99affe55fbba" + }, + "cell_type": "code", + "source": [ + "# Calling the overriden method in the child class\n", + "a_developer.cv()" + ], + "execution_count": 14, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Name : Jennifer\n", + "Age : 21\n", + "Skills : {('Java', 'Kotlin', 'Python', 'R')}\n", + "Expertise : Android\n", + "Years of Experience : 2\n" + ], + "name": "stdout" + } + ] + } + ] +} \ No newline at end of file diff --git a/WEEK1DICTIONARY.ipynb b/WEEK1DICTIONARY.ipynb new file mode 100644 index 0000000..eedef25 --- /dev/null +++ b/WEEK1DICTIONARY.ipynb @@ -0,0 +1,575 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Untitled8.ipynb", + "version": "0.3.2", + "provenance": [], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "[View in Colaboratory](https://colab.research.google.com/github/ASIF8240233397/Assignment-1/blob/ASIF8240233397/WEEK1DICTIONARY.ipynb)" + ] + }, + { + "metadata": { + "id": "cj0bS86edRJr", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 85 + }, + "outputId": "1881f099-8a76-4c9e-8e5a-82ae53297a9d" + }, + "cell_type": "code", + "source": [ + "# Simple Dictionary\n", + "# Dictionary allows to have key:value pairs\n", + "d1 = {\"Jennifer\":8, 'A':65, 66:'B', 9.45:\"Decimals\"}\n", + "\n", + "print (d1[\"Jennifer\"])\n", + "print (d1['A'])\n", + "print (d1[66])\n", + "print (d1[9.45])" + ], + "execution_count": 1, + "outputs": [ + { + "output_type": "stream", + "text": [ + "8\n", + "65\n", + "B\n", + "Decimals\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "3hRCfN0tdhn3", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 85 + }, + "outputId": "f223f658-4f9a-4986-99ce-c33c58c581cc" + }, + "cell_type": "code", + "source": [ + "# Adding new kay:value pairs\n", + "d1 = {\"Jennifer\":8, 'A':65, 66:'B', 9.45:\"Decimals\"}\n", + "\n", + "d1[\"Scarlett\"] = 8\n", + "d1[7.56] = \"Is a decimal!\"\n", + "d1['Q'] = 17\n", + "\n", + "print (d1[\"Scarlett\"])\n", + "print (d1[7.56])\n", + "print (d1['Q'])\n", + "\n", + "print (d1)" + ], + "execution_count": 2, + "outputs": [ + { + "output_type": "stream", + "text": [ + "8\n", + "Is a decimal!\n", + "17\n", + "{'Jennifer': 8, 'A': 65, 66: 'B', 9.45: 'Decimals', 'Scarlett': 8, 7.56: 'Is a decimal!', 'Q': 17}\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "PVreBgHDdkR_", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "38aa4de4-a611-4a03-d763-bb5099ea2aa1" + }, + "cell_type": "code", + "source": [ + "# Declaring an empty dictionary\n", + "d1 = {}\n", + "\n", + "# Add new values\n", + "d1[\"Jennifer\"] = \"Python\"\n", + "d1[\"Scarlett\"] = \"Python\"\n", + "d1[45] = 56\n", + "\n", + "print (d1)" + ], + "execution_count": 3, + "outputs": [ + { + "output_type": "stream", + "text": [ + "{'Jennifer': 'Python', 'Scarlett': 'Python', 45: 56}\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "aX-a4WtQdnrF", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "87bb4b4f-8308-4f1a-bfd5-30aea7cdca71" + }, + "cell_type": "code", + "source": [ + "# Modifying values in a dictionary\n", + "d1 = {\"Python\":\"Is a language\", \"Jennifer\":\"Feels like a supergirl with Python\"}\n", + "\n", + "d1[\"Python\"] = \"Is Love\"\n", + "d1[\"Jennifer\"] = 8\n", + "print (d1)" + ], + "execution_count": 4, + "outputs": [ + { + "output_type": "stream", + "text": [ + "{'Python': 'Is Love', 'Jennifer': 8}\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "uD5Z_9DydsBU", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "ebb3d84b-5bec-416a-ded6-d22945ce1f91" + }, + "cell_type": "code", + "source": [ + "# Removing Key:Value pairs\n", + "d1 = {\"Key\":\"Value\", \"Jennifer\":\"Scarlett\", \"Scarlett\":\"Jennifer\"}\n", + "\n", + "del d1[\"Key\"]\n", + "print (d1)" + ], + "execution_count": 5, + "outputs": [ + { + "output_type": "stream", + "text": [ + "{'Jennifer': 'Scarlett', 'Scarlett': 'Jennifer'}\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "KFPTlpmedtdu", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 122 + }, + "outputId": "52d3b0dc-f7ac-44cd-dc1b-ac21df034eaf" + }, + "cell_type": "code", + "source": [ + "# Storing a dictionary inside a dictionary\n", + "d1 = {'A':65, 'B':66, 'C':67, 'D': {\n", + " \"Breaking\": \"Dict into dicts\", \n", + " \"Inception\": \"All over\", \n", + " '!': \"XD\"}, \n", + " 'E':69, \n", + " \"What happened with D?\": \"It became a 'D'ictionary! XD\",\n", + " 66:66}\n", + "\n", + "print (d1['D'][\"Inception\"])\n", + "print (d1[\"What happened with D?\"])\n", + "print ('\\n')\n", + "print (d1)" + ], + "execution_count": 6, + "outputs": [ + { + "output_type": "stream", + "text": [ + "All over\n", + "It became a 'D'ictionary! XD\n", + "\n", + "\n", + "{'A': 65, 'B': 66, 'C': 67, 'D': {'Breaking': 'Dict into dicts', 'Inception': 'All over', '!': 'XD'}, 'E': 69, 'What happened with D?': \"It became a 'D'ictionary! XD\", 66: 66}\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "C7DCBYZwd3P2", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 493 + }, + "outputId": "fafaee73-a6ae-4537-e872-19968686de61" + }, + "cell_type": "code", + "source": [ + "# Looping through a dictionary\n", + "for key, value in d1.items():\n", + " print(\"Key: \" + str(key))\n", + " print (\"Value: \" + str(value))\n", + " print('\\n')" + ], + "execution_count": 7, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Key: A\n", + "Value: 65\n", + "\n", + "\n", + "Key: B\n", + "Value: 66\n", + "\n", + "\n", + "Key: C\n", + "Value: 67\n", + "\n", + "\n", + "Key: D\n", + "Value: {'Breaking': 'Dict into dicts', 'Inception': 'All over', '!': 'XD'}\n", + "\n", + "\n", + "Key: E\n", + "Value: 69\n", + "\n", + "\n", + "Key: What happened with D?\n", + "Value: It became a 'D'ictionary! XD\n", + "\n", + "\n", + "Key: 66\n", + "Value: 66\n", + "\n", + "\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "IBKhTkhZd40s", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 493 + }, + "outputId": "cdfa4725-c8b7-4df0-d152-3ea3961bf75f" + }, + "cell_type": "code", + "source": [ + "# Looping through the keys in dictionary\n", + "for key in d1.keys():\n", + " print(\"Key: \" + str(key))\n", + " print (\"Value: \" + str(d1[key]))\n", + " print('\\n')" + ], + "execution_count": 8, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Key: A\n", + "Value: 65\n", + "\n", + "\n", + "Key: B\n", + "Value: 66\n", + "\n", + "\n", + "Key: C\n", + "Value: 67\n", + "\n", + "\n", + "Key: D\n", + "Value: {'Breaking': 'Dict into dicts', 'Inception': 'All over', '!': 'XD'}\n", + "\n", + "\n", + "Key: E\n", + "Value: 69\n", + "\n", + "\n", + "Key: What happened with D?\n", + "Value: It became a 'D'ictionary! XD\n", + "\n", + "\n", + "Key: 66\n", + "Value: 66\n", + "\n", + "\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "jffqGelid8PB", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 136 + }, + "outputId": "157b5f9e-d9e8-4587-f49b-507519482019" + }, + "cell_type": "code", + "source": [ + "# Note: Default behaviour is to loop through keys if not specified d1.keys()\n", + "for k in d1:\n", + " print(\"Key: \" + str(k))" + ], + "execution_count": 9, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Key: A\n", + "Key: B\n", + "Key: C\n", + "Key: D\n", + "Key: E\n", + "Key: What happened with D?\n", + "Key: 66\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "2Al1cSKceF29", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "1ac92c2e-a53c-40b4-d4f2-cc47af269c1a" + }, + "cell_type": "code", + "source": [ + "# Check if a particular key is present\n", + "if 'F' not in d1.keys():\n", + " print (\"What happened to F?\")" + ], + "execution_count": 10, + "outputs": [ + { + "output_type": "stream", + "text": [ + "What happened to F?\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "qFhEM03eeJ38", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# Looping through dictonary keys in sorted order (increasing)\n", + "for key in sorted(d1.keys()):\n", + " print (\"Key :\" + key + '\\t' + \"Value :\" + str(d1[key]) + '\\n')" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "xwpYuzl2eJ5m", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# Looping through dictonary keys in sorted order (decreasing)\n", + "for key in sorted(d1.keys(), reverse=True):\n", + " print (\"Key :\" + key + '\\t' + \"Value :\" + str(d1[key]) + '\\n')" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "ynlWZvpJeJ7r", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 136 + }, + "outputId": "353a6a04-f1ed-47bd-8494-6d56618d8318" + }, + "cell_type": "code", + "source": [ + "# Looping through values in dictionary (with repeats)\n", + "# Note: If two or more keys have the same value then this method will print all of them\n", + "for value in d1.values():\n", + " print (str(value).title())" + ], + "execution_count": 13, + "outputs": [ + { + "output_type": "stream", + "text": [ + "65\n", + "66\n", + "67\n", + "{'Breaking': 'Dict Into Dicts', 'Inception': 'All Over', '!': 'Xd'}\n", + "69\n", + "It Became A 'D'Ictionary! Xd\n", + "66\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "fUgsQOGbeJ9M", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "daae4462-8969-40cf-b82d-40e4d064046a" + }, + "cell_type": "code", + "source": [ + "# List in Dictionary\n", + "d1 = {\"l1\":['A', 'B', 'C', 'D'],\n", + " \"l2\":['E', 'F', 'G', 'H'],\n", + " 45 : \"qwerty\",\n", + " '$' : \"$Dollar$\"}\n", + "\n", + "# Accessing the elements in list\n", + "print (d1[\"l1\"][2])\n", + "print (d1[\"l2\"][-1])" + ], + "execution_count": 14, + "outputs": [ + { + "output_type": "stream", + "text": [ + "C\n", + "H\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "hq7r6RcteJ_r", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 255 + }, + "outputId": "696d92bd-e6dc-48ef-b359-f3b188764f46" + }, + "cell_type": "code", + "source": [ + "# Looping over just the lists in dictionary\n", + "for k in d1.keys():\n", + " if type(d1[k]) == list:\n", + " print (\"List :\" + k)\n", + " for val in d1[k]:\n", + " print (val)\n", + " print ('\\n')" + ], + "execution_count": 15, + "outputs": [ + { + "output_type": "stream", + "text": [ + "List :l1\n", + "A\n", + "B\n", + "C\n", + "D\n", + "\n", + "\n", + "List :l2\n", + "E\n", + "F\n", + "G\n", + "H\n", + "\n", + "\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "5wckDWa3eKCl", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "c3HiJOMueKIE", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + } + ] +} \ No newline at end of file diff --git a/WEEK1FUNCTION9.ipynb b/WEEK1FUNCTION9.ipynb new file mode 100644 index 0000000..f1e380f --- /dev/null +++ b/WEEK1FUNCTION9.ipynb @@ -0,0 +1,695 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Untitled9.ipynb", + "version": "0.3.2", + "provenance": [], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "[View in Colaboratory](https://colab.research.google.com/github/ASIF8240233397/Assignment-1/blob/ASIF8240233397/WEEK1FUNCTION9.ipynb)" + ] + }, + { + "metadata": { + "id": "PsG8_4x5fXqZ", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "6517bda3-b217-4d2a-ee43-15585eb5a468" + }, + "cell_type": "code", + "source": [ + "# Simple function\n", + "# Function definition\n", + "def a_func():\n", + " print (\"A Message from the other world!\")\n", + "\n", + "# Function Call\n", + "a_func()\n", + "a_func()" + ], + "execution_count": 1, + "outputs": [ + { + "output_type": "stream", + "text": [ + "A Message from the other world!\n", + "A Message from the other world!\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "r1er6P3_feRY", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "da475327-f82d-4d3e-c0b3-d8cf3438baf7" + }, + "cell_type": "code", + "source": [ + "# Passing arguments to functions\n", + "def add_two(num):\n", + " print (int(num)+2)\n", + "\n", + "add_two (3)\n", + "add_two (\"45\") # This will work as we are casting the passed parameter to Integer before adding" + ], + "execution_count": 2, + "outputs": [ + { + "output_type": "stream", + "text": [ + "5\n", + "47\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "EeJhJqzOfflW", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 153 + }, + "outputId": "3b8562d1-d172-4bc2-d12c-8fcf454d67a9" + }, + "cell_type": "code", + "source": [ + "# Multiple arguments\n", + "def add_sub(add_two_to_this, sub_two_from_this):\n", + " print (\"Added 2 to : \" + str(add_two_to_this))\n", + " print (\"Answer: \" + str(int(add_two_to_this)+2))\n", + " \n", + " print (\"Subtracted 3 from : \" + str(sub_two_from_this))\n", + " print (\"Answer: \" + str(int(sub_two_from_this)-2))\n", + " \n", + "add_sub (45, \"67\")\n", + "add_sub (\"-156745\", 12131)" + ], + "execution_count": 3, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Added 2 to : 45\n", + "Answer: 47\n", + "Subtracted 3 from : 67\n", + "Answer: 65\n", + "Added 2 to : -156745\n", + "Answer: -156743\n", + "Subtracted 3 from : 12131\n", + "Answer: 12129\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "reYwCmpcffnW", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "3df0c5c8-4317-4f11-a89d-4536513106bb" + }, + "cell_type": "code", + "source": [ + "# Ordering of passed argument matters\n", + "def coding_in(name, language):\n", + " print (str(name) + \" is coding in \" + str(language))\n", + " \n", + "coding_in(\"Jennifer\", \"Python\")\n", + "# If you change the order, results are unexpected\n", + "coding_in(\"Python\", \"Jennifer\")" + ], + "execution_count": 4, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Jennifer is coding in Python\n", + "Python is coding in Jennifer\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "Li3zeTSZffqO", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "2a650cb2-274b-4118-da16-5913c8232b46" + }, + "cell_type": "code", + "source": [ + "# Keyword Arguments\n", + "# Pass the argumnets as key:value pairs, so even if unordered it won't produce unexpected results\n", + "def coding_in(name, language):\n", + " print (str(name) + \" is coding in \" + str(language))\n", + " \n", + "coding_in(name=\"Jennifer\", language=\"Python\")\n", + "# If you change the order, results are same\n", + "coding_in(language=\"Python\", name=\"Jennifer\")" + ], + "execution_count": 5, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Jennifer is coding in Python\n", + "Jennifer is coding in Python\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "wDu_rmBSffuC", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "be330909-312b-496b-98b4-52a1a5ffd31b" + }, + "cell_type": "code", + "source": [ + "# Default Values for parameters\n", + "# Note: If you do not pass arguments required by the function and that argument does not have a default value, \n", + "# then python will throw an error\n", + "def coding_in(name, language=\"Python\"):\n", + " print (str(name) + \" is coding in \" + str(language))\n", + " \n", + "coding_in(\"Jennifer\") # Since 2nd argument is not passed, it takes on the default parameter given\n", + "coding_in(\"Jennifer\", \"R\") # Since 2nd argument is passed, it takes on the passed arguemnt" + ], + "execution_count": 6, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Jennifer is coding in Python\n", + "Jennifer is coding in R\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "x1nU7KTGffvZ", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 129 + }, + "outputId": "47b7b335-661e-433b-a18e-2445b468960d" + }, + "cell_type": "code", + "source": [ + "# Note: You cannot have parameters with no default value after parameters having default value\n", + "# Following is an error\n", + "def coding_in(name, language1=\"Python\", language2):\n", + " print (str(name) + \" is coding in \" + str(language1) + \" and \" + str(language2))\n", + "\n", + "coding_in(\"Jennifer\", \"Python\", \"R\")" + ], + "execution_count": 7, + "outputs": [ + { + "output_type": "error", + "ename": "SyntaxError", + "evalue": "ignored", + "traceback": [ + "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m def coding_in(name, language1=\"Python\", language2):\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m non-default argument follows default argument\n" + ] + } + ] + }, + { + "metadata": { + "id": "3u1xMiO9ffy7", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "9deb0598-ebbd-48d4-c842-4b9022d92942" + }, + "cell_type": "code", + "source": [ + "# Easy fix to above error is to declare all non-default parameters, \n", + "# and then start declaring the default parameters\n", + "# Note: Default parameters can be used to make an argument optional\n", + "def coding_in(name, language2, language1=\"Python\"):\n", + " print (str(name) + \" is coding in \" + str(language1) + \" and \" + str(language2))\n", + "\n", + "coding_in(\"Jennifer\", \"Python\", \"R\")\n", + "coding_in(\"Jennifer\", \"R\")" + ], + "execution_count": 8, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Jennifer is coding in R and Python\n", + "Jennifer is coding in Python and R\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "UFMKAa9Ef-vL", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "0c494cf0-643c-4710-cd98-28141f1f8977" + }, + "cell_type": "code", + "source": [ + "# All parameters can be default\n", + "def coding_in(name=\"Jennifer\", language1=\"Python\", language2=\"R\"):\n", + " print (str(name) + \" is coding in \" + str(language1) + \" and \" + str(language2))\n", + "\n", + "coding_in()" + ], + "execution_count": 9, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Jennifer is coding in Python and R\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "2yhLoHmXf-3R", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "7e1ea667-377e-4318-f69f-ee9f83211566" + }, + "cell_type": "code", + "source": [ + "# return\n", + "def pow_4(num):\n", + " return num**4\n", + "\n", + "v1 = pow_4(34) # v1 now stores 34^4\n", + "v2 = pow_4(23) # v2 now stores 23^4\n", + "\n", + "print (\"34^4 = \" + str(v1))\n", + "print (\"23^4 = \" + str(v2))" + ], + "execution_count": 10, + "outputs": [ + { + "output_type": "stream", + "text": [ + "34^4 = 1336336\n", + "23^4 = 279841\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "qlF9xfi7gE0g", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "9fd0aad5-b777-4406-b4ce-4c070d8e127f" + }, + "cell_type": "code", + "source": [ + "# can return any data type or object from function\n", + "def make_a_coder(name, age, language):\n", + " d1 = {'name': name, \n", + " 'age' : age,\n", + " 'language' : language}\n", + " return d1\n", + "\n", + "print(make_a_coder(\"Jennifer\", \"21\", \"Python\"))" + ], + "execution_count": 11, + "outputs": [ + { + "output_type": "stream", + "text": [ + "{'name': 'Jennifer', 'age': '21', 'language': 'Python'}\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "R0JfIzTSgItd", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 119 + }, + "outputId": "67a814e3-7aa0-4796-bfb7-476d18a60683" + }, + "cell_type": "code", + "source": [ + "# can pass any data type or object to function\n", + "def make_many_coders(list_of_coders):\n", + " print (\"Name \\tLanguage \\tAge\")\n", + " print (\"========\\t==========\\t===\")\n", + " for coder,details in list_of_coders.items():\n", + " print (str(coder) + \"\\t\" + str(details[0]) + \"\\t\\t\" + str(details[-1]))\n", + " \n", + " return str(len(list_of_coders))\n", + "\n", + "d1 = {\"Jennifer\": [\"Python\", 21],\n", + " \"Scarlett\": [\"R\", 21]}\n", + "print ('\\n' + make_many_coders(d1) + \" coders found!\")" + ], + "execution_count": 12, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Name \tLanguage \tAge\n", + "========\t==========\t===\n", + "Jennifer\tPython\t\t21\n", + "Scarlett\tR\t\t21\n", + "\n", + "2 coders found!\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "7yQHS3zXgNg2", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "10ab34e7-1caf-45b0-b87f-d1d106727112" + }, + "cell_type": "code", + "source": [ + "# If a list passed to a function is changed inside the function then the change is permanent\n", + "def make_language_list(language_list, new_language):\n", + " language_list.append(new_language)\n", + " \n", + "lang_list = [\"Python\", \"R\"]\n", + "print (lang_list)\n", + "\n", + "make_language_list(lang_list, \"Julia\")\n", + "print (lang_list)" + ], + "execution_count": 13, + "outputs": [ + { + "output_type": "stream", + "text": [ + "['Python', 'R']\n", + "['Python', 'R', 'Julia']\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "kBGFm0CdgNms", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "fb31e07d-308c-4be3-f8a3-53a45e5b3b19" + }, + "cell_type": "code", + "source": [ + "# Preventing a function from modifying a list\n", + "def make_language_list(language_list, new_language):\n", + " language_list.append(new_language)\n", + " \n", + "lang_list = [\"Python\", \"R\"]\n", + "print (lang_list)\n", + "\n", + "make_language_list(lang_list[:], \"Julia\")\n", + "print (lang_list)" + ], + "execution_count": 14, + "outputs": [ + { + "output_type": "stream", + "text": [ + "['Python', 'R']\n", + "['Python', 'R']\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "a9Qxt6WpgUr0", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "8797e76b-6dbc-48c3-d7c4-38ce2a2bba57" + }, + "cell_type": "code", + "source": [ + "# Passing Arbitrary number of arguments\n", + "# The '*' tells Python to make a tuple of whatever number of arguments it receives at that position\n", + "def languages(*many_languages): \n", + " print (many_languages)\n", + " \n", + "languages (\"Python\")\n", + "languages (\"Python\", \"R\", \"Julia\", \"Ruby\", \"Go\")" + ], + "execution_count": 15, + "outputs": [ + { + "output_type": "stream", + "text": [ + "('Python',)\n", + "('Python', 'R', 'Julia', 'Ruby', 'Go')\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "Q-v80_n9gXxc", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "dce12d57-80b4-4a29-c389-183440574110" + }, + "cell_type": "code", + "source": [ + "# Passing Arbitrary number of arguments with a normal argument\n", + "# Note: The parameter that accepts arbitrary number of arguments needs to be placed at last\n", + "def knows_languages(name, *languages):\n", + " print (str(name) + \" knows: \" + str(languages))\n", + " \n", + "knows_languages(\"Jennifer\", \"Python\")\n", + "knows_languages(\"Jennifer\", \"Python\", \"R\", \"Julia\", \"Ruby\")" + ], + "execution_count": 16, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Jennifer knows: ('Python',)\n", + "Jennifer knows: ('Python', 'R', 'Julia', 'Ruby')\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "TfZx8ddEgnf6", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "" + ] + }, + { + "metadata": { + "id": "rjilRiZ1goOj", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 129 + }, + "outputId": "6891f159-0d08-4c11-ec13-7fa9aaa617ac" + }, + "cell_type": "code", + "source": [ + "# Note: You cannot have two or more parameters that accepts arbitrary number of arguments\n", + "# Hence, following is an error!\n", + "def knows_languages_and_modules(name, *languages, *modules):\n", + " print (str(name) + \" knows: \" + str(languages))\n", + " \n", + "knows_languages(\"Jennifer\", \"Python\", \"PyGtk\")\n", + "knows_languages(\"Jennifer\", \"Python\", \"R\", \"Julia\", \"Ruby\", \"PyGtk\", \"PyGame\", \"audioop\")" + ], + "execution_count": 17, + "outputs": [ + { + "output_type": "error", + "ename": "SyntaxError", + "evalue": "ignored", + "traceback": [ + "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m def knows_languages_and_modules(name, *languages, *modules):\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n" + ] + } + ] + }, + { + "metadata": { + "id": "Aea_MwYHgstl", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "d8cb2703-2f41-433c-faf7-b5737b99cd55" + }, + "cell_type": "code", + "source": [ + "# Using Arbitrary Keyword Argument\n", + "# Note: '**' tells Python to create a dictionary of the extra arguments passed after the first required positional argument\n", + "def make_a_coder(name, **details):\n", + " coder = {}\n", + " coder[\"name\"] = name;\n", + " for key, value in details.items():\n", + " coder[key] = value\n", + " return coder\n", + "\n", + "print (make_a_coder(\"Jennifer\", location=\"California\", age=\"21\", language=(\"Python\", \"R\")))\n", + "\n", + "# We can do this since we are using keyword arguments\n", + "print (make_a_coder(location=\"California\", age=\"21\", language=(\"Python\", \"R\"), name=\"Jennifer\"))" + ], + "execution_count": 18, + "outputs": [ + { + "output_type": "stream", + "text": [ + "{'name': 'Jennifer', 'location': 'California', 'age': '21', 'language': ('Python', 'R')}\n", + "{'name': 'Jennifer', 'location': 'California', 'age': '21', 'language': ('Python', 'R')}\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "quiyIR_lgswC", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "khEpYdW8gsx8", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "hrrHF4tBgs1C", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "16o3dUVdgssW", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + } + ] +} \ No newline at end of file diff --git a/WEEK1NO6.ipynb b/WEEK1NO6.ipynb new file mode 100644 index 0000000..3e63f0b --- /dev/null +++ b/WEEK1NO6.ipynb @@ -0,0 +1,1329 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Untitled6.ipynb", + "version": "0.3.2", + "provenance": [], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "[View in Colaboratory](https://colab.research.google.com/github/ASIF8240233397/Assignment-1/blob/ASIF8240233397/WEEK1NO6.ipynb)" + ] + }, + { + "metadata": { + "id": "WjLOFKkJXQSb", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + }, + "outputId": "813231e1-ff08-4524-b68d-cf9db72de9e3" + }, + "cell_type": "code", + "source": [ + "# Simple Lists\n", + "names = [\"Jennifer\", \"Python\", \"Scarlett\"]\n", + "nums = [1, 2, 3, 4, 5]\n", + "chars = ['A', 'q', 'E', 'z', 'Y']\n", + "\n", + "print (names)\n", + "print (nums)\n", + "print (chars)" + ], + "execution_count": 1, + "outputs": [ + { + "output_type": "stream", + "text": [ + "['Jennifer', 'Python', 'Scarlett']\n", + "[1, 2, 3, 4, 5]\n", + "['A', 'q', 'E', 'z', 'Y']\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "wqC9x39fXXih", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "6f0adf6d-296a-43b6-b5de-848e9e59e6fd" + }, + "cell_type": "code", + "source": [ + "# Can have multiple data types in one list\n", + "rand_list = [\"Jennifer\", \"Python\", \"refinneJ\", 'J', '9', 9, 12.90, \"Who\"]\n", + "print (rand_list)" + ], + "execution_count": 2, + "outputs": [ + { + "output_type": "stream", + "text": [ + "['Jennifer', 'Python', 'refinneJ', 'J', '9', 9, 12.9, 'Who']\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "g9nJBCmcXmYc", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + }, + "outputId": "0825921b-2cd0-4c63-f9ed-1892288944f3" + }, + "cell_type": "code", + "source": [ + "# Accessing elements in a list\n", + "# O-indexed\n", + "print (names[2])\n", + "print (rand_list[3])\n", + "print (names[0] + \" \" + rand_list[2].title())" + ], + "execution_count": 3, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Scarlett\n", + "J\n", + "Jennifer Refinnej\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "TShWgwSJXu0B", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "" + ] + }, + { + "metadata": { + "id": "B2E28FACXvei", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "2eb6cd09-3975-4506-bc39-19e3b57c8f17" + }, + "cell_type": "code", + "source": [ + "# Negetive indexes: Access elements from the end of the list without knowing the size of the list\n", + "print (rand_list[-1]) # Returns the last element of the list [1st from the end]\n", + "print (rand_list[-2]) # Returns the 2nd last element\n", + "# and so on.." + ], + "execution_count": 4, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Who\n", + "12.9\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "BljuOVjDXxxG", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "" + ] + }, + { + "metadata": { + "id": "SLN9SKCDXyDF", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "e090f875-33ba-492c-ae25-7483664a9b03" + }, + "cell_type": "code", + "source": [ + "# Negetive indexes: Access elements from the end of the list without knowing the size of the list\n", + "print (rand_list[-1]) # Returns the last element of the list [1st from the end]\n", + "print (rand_list[-2]) # Returns the 2nd last element\n", + "# and so on.." + ], + "execution_count": 5, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Who\n", + "12.9\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "mEdNAo8cX3oh", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + }, + "outputId": "fbc880e2-f52f-47dc-e81b-f519f854377b" + }, + "cell_type": "code", + "source": [ + "# Now here's a question.\n", + "print (rand_list[-1] + \" is \" + names[2] + \"?\")\n", + "print (\"A) \" + rand_list[0] + \"'s sister\\tB) \" + names[0] + \"'s Friend\\nC) Not Related to \" + rand_list[-8] + \"\\tD) Nice question but I don't know\")" + ], + "execution_count": 6, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Who is Scarlett?\n", + "A) Jennifer's sister\tB) Jennifer's Friend\n", + "C) Not Related to Jennifer\tD) Nice question but I don't know\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "dASR1GleX6qa", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "b5f2641e-3834-4ad3-af03-f2f1687c534e" + }, + "cell_type": "code", + "source": [ + "# Modifying elements in a list\n", + "str_list = [\"Scarlett\", \"is\", \"a\", \"nice\", 'girl', '!']\n", + "\n", + "print (str_list)\n", + "str_list[0] = \"Jennifer\"\n", + "print (str_list)" + ], + "execution_count": 7, + "outputs": [ + { + "output_type": "stream", + "text": [ + "['Scarlett', 'is', 'a', 'nice', 'girl', '!']\n", + "['Jennifer', 'is', 'a', 'nice', 'girl', '!']\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "BLNIO_lJYDf7", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "ae5f8e3b-d60d-45bc-8aa8-f7b630a60634" + }, + "cell_type": "code", + "source": [ + "# Adding elements to a list\n", + "# Use append() to add elements to the end of the list\n", + "str_list.append ('She is 21.')\n", + "print (str_list)" + ], + "execution_count": 8, + "outputs": [ + { + "output_type": "stream", + "text": [ + "['Jennifer', 'is', 'a', 'nice', 'girl', '!', 'She is 21.']\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "8Jxgy-tRYFra", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "0034f1eb-6f59-4451-9315-96ceaa57fe8e" + }, + "cell_type": "code", + "source": [ + "# So, you can build lists like this\n", + "my_list = []\n", + "my_list.append (\"myname\")\n", + "my_list.append (\"myage\")\n", + "my_list.append (\"myaddress\")\n", + "my_list.append (\"myphn\")\n", + "my_list.append (\"is\")\n", + "my_list.append (1234567890)\n", + "print (my_list)" + ], + "execution_count": 9, + "outputs": [ + { + "output_type": "stream", + "text": [ + "['myname', 'myage', 'myaddress', 'myphn', 'is', 1234567890]\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "Fz2Fa19jYULV", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "e0bf6884-106c-409a-f480-8f06693b5ac2" + }, + "cell_type": "code", + "source": [ + "# Insert elements at specific positions of the list\n", + "# insert(index, element)\n", + "my_list.insert (0, \"Mr/Miss/Mrs\")\n", + "print (my_list)\n", + "\n", + "my_list.insert(4, \"mybday\")\n", + "print (my_list)" + ], + "execution_count": 10, + "outputs": [ + { + "output_type": "stream", + "text": [ + "['Mr/Miss/Mrs', 'myname', 'myage', 'myaddress', 'myphn', 'is', 1234567890]\n", + "['Mr/Miss/Mrs', 'myname', 'myage', 'myaddress', 'mybday', 'myphn', 'is', 1234567890]\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "sQJ0dFsBYXfQ", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "a8a5d5b7-34fe-4634-9c3d-458d40bd1c09" + }, + "cell_type": "code", + "source": [ + "# Using '-1' to insert at the end doesn't work and inserts element at the 2nd last position.\n", + "my_list = ['A', 'B', 'C', 'D']\n", + "my_list.insert (-1, 'E')\n", + "print (my_list)" + ], + "execution_count": 11, + "outputs": [ + { + "output_type": "stream", + "text": [ + "['A', 'B', 'C', 'E', 'D']\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "lkNjMAwMYafx", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "e4096290-323b-4090-f47b-ac1037a8d7a0" + }, + "cell_type": "code", + "source": [ + "# Using '-2' inserts at 3rd last position\n", + "# In general, use '-n' to insert at 'n+1'th position from end.\n", + "my_list = ['A', 'B', 'C', 'D']\n", + "my_list.insert (-2, 'E')\n", + "print (my_list)" + ], + "execution_count": 12, + "outputs": [ + { + "output_type": "stream", + "text": [ + "['A', 'B', 'E', 'C', 'D']\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "WU0atyGEYdRb", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "1d3b79b3-774d-42b3-ac51-84ce5a269d3f" + }, + "cell_type": "code", + "source": [ + "# Insert elements at the end\n", + "l1 = ['A', 'B', 'C', 'D']\n", + "l2 = ['A', 'B', 'C', 'D']\n", + "\n", + "l1.append('E')\n", + "l2.insert(len(my_list), 'E')\n", + "print (l1)\n", + "print (l2)" + ], + "execution_count": 13, + "outputs": [ + { + "output_type": "stream", + "text": [ + "['A', 'B', 'C', 'D', 'E']\n", + "['A', 'B', 'C', 'D', 'E']\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "37t5gqXQYh-e", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "7f8e114f-e447-49a5-8ce8-6913bcacff4c" + }, + "cell_type": "code", + "source": [ + "# Length of the list\n", + "l1 = ['A', 'B', 'C', 'D', 'E']\n", + "print (len(l1))" + ], + "execution_count": 14, + "outputs": [ + { + "output_type": "stream", + "text": [ + "5\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "wfPFmyO9YmIN", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + }, + "outputId": "3425f117-56a8-4c12-e8f8-b14653801942" + }, + "cell_type": "code", + "source": [ + "# # Removing elements from list\n", + "# del can remove any element from list as long as you know its index\n", + "l1 = ['A', 'B', 'C', 'D', 'E']\n", + "print (l1)\n", + "\n", + "del l1[0]\n", + "print (l1)\n", + "\n", + "del l1[-1]\n", + "print (l1)" + ], + "execution_count": 15, + "outputs": [ + { + "output_type": "stream", + "text": [ + "['A', 'B', 'C', 'D', 'E']\n", + "['B', 'C', 'D', 'E']\n", + "['B', 'C', 'D']\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "vTD6M3VNYtMw", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "2e574447-0a58-4615-abe9-fc0f90628439" + }, + "cell_type": "code", + "source": [ + "# pop() can remove the last element from list when used without any arguments\n", + "l1 = ['A', 'B', 'C', 'D', 'E']\n", + "# pop() returns the last element, so c would store the popped element\n", + "c = l1.pop()\n", + "\n", + "print (l1)\n", + "print (c) " + ], + "execution_count": 16, + "outputs": [ + { + "output_type": "stream", + "text": [ + "['A', 'B', 'C', 'D']\n", + "E\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "RWAQaebVYxJJ", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 85 + }, + "outputId": "439fc078-7bb6-4080-dc8d-944f08365685" + }, + "cell_type": "code", + "source": [ + "# pop(n) -> Removes the element at index 'n' and returns it\n", + "l1 = ['A', 'B', 'C', 'D', 'E']\n", + "\n", + "# Removes the element at 0 position and returns it\n", + "c = l1.pop(0)\n", + "print (l1)\n", + "print (c)\n", + "\n", + "# Works as expected with negetive indexes\n", + "c = l1.pop(-1)\n", + "print (l1)\n", + "print (c)" + ], + "execution_count": 17, + "outputs": [ + { + "output_type": "stream", + "text": [ + "['B', 'C', 'D', 'E']\n", + "A\n", + "['B', 'C', 'D']\n", + "E\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "waIOhl6vY0MA", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + }, + "outputId": "fa902353-9fa5-4dd9-9f21-28bd8f0e74c9" + }, + "cell_type": "code", + "source": [ + "# Removing an item by value\n", + "# remove() only removes the first occurence of the value that is specified.\n", + "q1 = [\"Seriously, \", \"what\", \"happened\", \"to\", \"Jennifer\", \"and\", \"Jennifer\", \"?\"]\n", + "print (q1)\n", + "\n", + "q1.remove (\"Jennifer\")\n", + "print (q1)\n", + "\n", + "n1 = \"and\"\n", + "q1.remove(n1)\n", + "print (q1)" + ], + "execution_count": 18, + "outputs": [ + { + "output_type": "stream", + "text": [ + "['Seriously, ', 'what', 'happened', 'to', 'Jennifer', 'and', 'Jennifer', '?']\n", + "['Seriously, ', 'what', 'happened', 'to', 'and', 'Jennifer', '?']\n", + "['Seriously, ', 'what', 'happened', 'to', 'Jennifer', '?']\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "FxnlIj8ZY4_G", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "b3ea93e3-3b4b-4e18-c627-0b4c21ab3453" + }, + "cell_type": "code", + "source": [ + "# Sorting a list\n", + "# sort() -> sorts list in increasing or decreasing order, *permantantly*\n", + "# Sorts in alphabetical order\n", + "l1 = ['E', 'D', 'C', 'B', 'A']\n", + "l1.sort()\n", + "print (l1)\n", + "\n", + "# Sorts in increasing order\n", + "l2 = [2, 200, 16, 4, 1, 0, 9.45, 45.67, 90, 12.01, 12.02]\n", + "l2.sort()\n", + "print (l2)" + ], + "execution_count": 19, + "outputs": [ + { + "output_type": "stream", + "text": [ + "['A', 'B', 'C', 'D', 'E']\n", + "[0, 1, 2, 4, 9.45, 12.01, 12.02, 16, 45.67, 90, 200]\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "UY4-hZCSY5No", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "e8e0d8b8-b5ce-4324-b795-fa8b65ddc345" + }, + "cell_type": "code", + "source": [ + "# Reverse sorts alphabetical order\n", + "l1 = ['E', 'D', 'C', 'B', 'A']\n", + "l1.sort(reverse=True)\n", + "print (l1)\n", + "\n", + "# Sorts in decreasing order\n", + "l2 = [2, 200, 16, 4, 1, 0, 9.45, 45.67, 90, 12.01, 12.02]\n", + "l2.sort(reverse=True)\n", + "print (l2)" + ], + "execution_count": 20, + "outputs": [ + { + "output_type": "stream", + "text": [ + "['E', 'D', 'C', 'B', 'A']\n", + "[200, 90, 45.67, 16, 12.02, 12.01, 9.45, 4, 2, 1, 0]\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "uqeubf5gY5Ym", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + }, + "outputId": "ee0a0440-33c4-4284-f05f-a915a3a4c0f4" + }, + "cell_type": "code", + "source": [ + "# sorted() -> Sorts list in increasing or decreasing order, *temporarily*\n", + "# Sorts in increasing order\n", + "l2 = [2, 200, 16, 4, 1, 0, 9.45, 45.67, 90, 12.01, 12.02]\n", + "print (l2)\n", + "print (sorted(l2))\n", + "print (l2)" + ], + "execution_count": 21, + "outputs": [ + { + "output_type": "stream", + "text": [ + "[2, 200, 16, 4, 1, 0, 9.45, 45.67, 90, 12.01, 12.02]\n", + "[0, 1, 2, 4, 9.45, 12.01, 12.02, 16, 45.67, 90, 200]\n", + "[2, 200, 16, 4, 1, 0, 9.45, 45.67, 90, 12.01, 12.02]\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "f2XE7PoNY5kK", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + }, + "outputId": "5c53aea2-fce0-4b64-9e2c-fee033b327c9" + }, + "cell_type": "code", + "source": [ + "# Sorts in decreasing order\n", + "l2 = [2, 200, 16, 4, 1, 0, 9.45, 45.67, 90, 12.01, 12.02]\n", + "print (l2)\n", + "print (sorted(l2, reverse=True))\n", + "print (l2)" + ], + "execution_count": 22, + "outputs": [ + { + "output_type": "stream", + "text": [ + "[2, 200, 16, 4, 1, 0, 9.45, 45.67, 90, 12.01, 12.02]\n", + "[200, 90, 45.67, 16, 12.02, 12.01, 9.45, 4, 2, 1, 0]\n", + "[2, 200, 16, 4, 1, 0, 9.45, 45.67, 90, 12.01, 12.02]\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "xKpQ9NJhY5uk", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "f12d0917-ea4d-454d-9055-da564b971503" + }, + "cell_type": "code", + "source": [ + "# Reverse list\n", + "l1 = ['E', 'D', 'C', 'B', 'A']\n", + "l1.reverse()\n", + "print (l1)" + ], + "execution_count": 23, + "outputs": [ + { + "output_type": "stream", + "text": [ + "['A', 'B', 'C', 'D', 'E']\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "kljvmsMSZOXH", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 153 + }, + "outputId": "f2ed61a5-ee7a-4dfe-bbe7-b68158430fb1" + }, + "cell_type": "code", + "source": [ + "# Looping Through a list using for\n", + "l1 = [\"Scarlett\", \"is\", \"now\", \"back\", \"from\", \"her first\", \"Python\", \"lesson.\"]\n", + "\n", + "# Do notice the indentations\n", + "for each_word in l1:\n", + " print (each_word)" + ], + "execution_count": 24, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Scarlett\n", + "is\n", + "now\n", + "back\n", + "from\n", + "her first\n", + "Python\n", + "lesson.\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "7LRf7kU-ZUGM", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 119 + }, + "outputId": "dbf46920-9f69-4410-94c9-0bc7332b86e6" + }, + "cell_type": "code", + "source": [ + "# Looping through a list using while\n", + "l1 = [\"Scarlett\", \"is\", \"in\", \"love\", \"with\", \"Python\"]\n", + "i = 0\n", + "while i is not len(l1):\n", + " print (l1[i])\n", + " i += 1" + ], + "execution_count": 25, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Scarlett\n", + "is\n", + "in\n", + "love\n", + "with\n", + "Python\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "0BRsoHIVY540", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 119 + }, + "outputId": "b355bc35-cd83-4938-ae60-752249674df1" + }, + "cell_type": "code", + "source": [ + "# Numerical lists\n", + "# Note: range(n, m) will loop over numbers from n to m-1\n", + "l1 = ['A', 'B', 'C', 'D', 'E']\n", + "print (\"Guess how much Scarlett scored in her first lesson out of 5:\")\n", + "for val in range(1, 6):\n", + " print (l1[val-1] + \") \" + str(val))" + ], + "execution_count": 26, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Guess how much Scarlett scored in her first lesson out of 5:\n", + "A) 1\n", + "B) 2\n", + "C) 3\n", + "D) 4\n", + "E) 5\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "xorNubfJZd5z", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "1c4129a0-ca4d-44e0-99d6-d05cd3f84699" + }, + "cell_type": "code", + "source": [ + "# Using range() to make a list of numbers\n", + "num_list = list(range(1, 6))\n", + "print (num_list)" + ], + "execution_count": 27, + "outputs": [ + { + "output_type": "stream", + "text": [ + "[1, 2, 3, 4, 5]\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "aSN5XZFnZiy9", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "b4f1ea6c-9ff7-4f22-c7f1-5663c2a0f54f" + }, + "cell_type": "code", + "source": [ + "# Use range() to skip values at intervals\n", + "# range (num_to_start_from, num_to_end_at+1, interval)\n", + "l1 = list(range(10, 51, 5))\n", + "print (l1)" + ], + "execution_count": 28, + "outputs": [ + { + "output_type": "stream", + "text": [ + "[10, 15, 20, 25, 30, 35, 40, 45, 50]\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "b5USM--xZkv0", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + }, + "outputId": "aaaddb13-c92b-4c85-8408-2d9106a1d276" + }, + "cell_type": "code", + "source": [ + "# Operations with list of numbers with -> min() max() sum()\n", + "l1 = [2, 3, 4, 45, 1, 5, 6, 3, 1, 23, 14]\n", + "\n", + "print (\"Sum: \" + str(sum(l1)))\n", + "print (\"Max: \" + str(max(l1)))\n", + "print (\"Min: \" + str(min(l1)))" + ], + "execution_count": 29, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Sum: 107\n", + "Max: 45\n", + "Min: 1\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "BtWBngkEZrD4", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + }, + "outputId": "6bc72035-f4a4-484e-da37-56f527ba6691" + }, + "cell_type": "code", + "source": [ + "# List Comprehensions\n", + "# Simple\n", + "l1 = [i for i in range(20, 30, 1)]\n", + "l2 = [i+1 for i in range(20, 30, 1)]\n", + "l3 = [[i, i**2] for i in range(2, 12, 3)]\n", + "print (l1)\n", + "print (l2)\n", + "print (l3)" + ], + "execution_count": 30, + "outputs": [ + { + "output_type": "stream", + "text": [ + "[20, 21, 22, 23, 24, 25, 26, 27, 28, 29]\n", + "[21, 22, 23, 24, 25, 26, 27, 28, 29, 30]\n", + "[[2, 4], [5, 25], [8, 64], [11, 121]]\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "HoKbahVOZs09", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 54 + }, + "outputId": "f81ebfc5-834c-40a8-c545-f51ff408ea9c" + }, + "cell_type": "code", + "source": [ + "# A few more list comprehension examples\n", + "equi_list_1 = [[x, y, z] for x in range(1, 3) for y in range(3, 6) for z in range(6, 9)]\n", + "print (equi_list_1)" + ], + "execution_count": 31, + "outputs": [ + { + "output_type": "stream", + "text": [ + "[[1, 3, 6], [1, 3, 7], [1, 3, 8], [1, 4, 6], [1, 4, 7], [1, 4, 8], [1, 5, 6], [1, 5, 7], [1, 5, 8], [2, 3, 6], [2, 3, 7], [2, 3, 8], [2, 4, 6], [2, 4, 7], [2, 4, 8], [2, 5, 6], [2, 5, 7], [2, 5, 8]]\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "wj5RySixZxR5", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 54 + }, + "outputId": "0632f478-75d7-4808-dfd4-b068cb92bc06" + }, + "cell_type": "code", + "source": [ + "# The above list comprehension is equivalent of the following code\n", + "equi_list_2 = []\n", + "for x in range(1, 3):\n", + " for y in range(3, 6):\n", + " for z in range(6, 9):\n", + " equi_list_2.append([x, y, z])\n", + "print (equi_list_2)" + ], + "execution_count": 32, + "outputs": [ + { + "output_type": "stream", + "text": [ + "[[1, 3, 6], [1, 3, 7], [1, 3, 8], [1, 4, 6], [1, 4, 7], [1, 4, 8], [1, 5, 6], [1, 5, 7], [1, 5, 8], [2, 3, 6], [2, 3, 7], [2, 3, 8], [2, 4, 6], [2, 4, 7], [2, 4, 8], [2, 5, 6], [2, 5, 7], [2, 5, 8]]\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "-YlhaCEQZzb6", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "9648f87c-a98c-41e1-8f8c-6200fb8ba576" + }, + "cell_type": "code", + "source": [ + "# Proof of equivalence (Do execute the above two blocks of code before running this)\n", + "print (equi_list_1 == equi_list_2)\n" + ], + "execution_count": 33, + "outputs": [ + { + "output_type": "stream", + "text": [ + "True\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "TX3zJEiFZ4Lt", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "3ea199af-51f4-4242-ffbc-4b781211e690" + }, + "cell_type": "code", + "source": [ + "# List Comprehension with conditionals\n", + "l1 = [x if x%5==0 else \"blank\" for x in range(20)]\n", + "print (l1)" + ], + "execution_count": 34, + "outputs": [ + { + "output_type": "stream", + "text": [ + "[0, 'blank', 'blank', 'blank', 'blank', 5, 'blank', 'blank', 'blank', 'blank', 10, 'blank', 'blank', 'blank', 'blank', 15, 'blank', 'blank', 'blank', 'blank']\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "Fe7WDafZZ4Ok", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "b2723391-a510-478d-f57a-f7583d020f9d" + }, + "cell_type": "code", + "source": [ + "# One more list comprehension with conditionals\n", + "l1 = [\"Jennifer\", \"met\", \"Scarlett\", \"in\", \"Python\", \"lessons\", \"they\", \"take.\"]\n", + "l2 = [[str(x) + \") \" + y] for x in range(len(l1)) for y in l1 if l1[x] == y]\n", + "print (l2)" + ], + "execution_count": 35, + "outputs": [ + { + "output_type": "stream", + "text": [ + "[['0) Jennifer'], ['1) met'], ['2) Scarlett'], ['3) in'], ['4) Python'], ['5) lessons'], ['6) they'], ['7) take.']]\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "F2IWF0sQZ4Tl", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 85 + }, + "outputId": "66bcefce-de93-45fd-c501-d8abc1227991" + }, + "cell_type": "code", + "source": [ + "# Slicing a list\n", + "l1 = [\"Jennifer\", \"is\", \"now\", \"friends\", \"with\", \"Scarlett\"]\n", + "\n", + "# [start_index : end_index+1]\n", + "print(\"[2:5] --> \" + str(l1[2:5]))\n", + "print(\"[:4] --> \" + str(l1[:4])) # everthing before 4th index [excluding the 4th]\n", + "print(\"[2:] --> \" + str(l1[2:])) # everything from 2nd index [including the 2nd]\n", + "print(\"[:] --> \" + str(l1[:])) # every element in the list" + ], + "execution_count": 36, + "outputs": [ + { + "output_type": "stream", + "text": [ + "[2:5] --> ['now', 'friends', 'with']\n", + "[:4] --> ['Jennifer', 'is', 'now', 'friends']\n", + "[2:] --> ['now', 'friends', 'with', 'Scarlett']\n", + "[:] --> ['Jennifer', 'is', 'now', 'friends', 'with', 'Scarlett']\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "S9RXmRoBZ4Wb", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 85 + }, + "outputId": "7323db2c-5121-4f55-cad5-2599ced3398e" + }, + "cell_type": "code", + "source": [ + "# Some more slicing\n", + "l1 = [\"Jennifer\", \"and\", \"Scarlett\", \"now\", \"Pythonistas\", \"!\"]\n", + "\n", + "print (\"[-2:] --> \" + str(l1[-2:]))\n", + "print (\"[:-3] --> \" + str(l1[:-3]))\n", + "print (\"[-5:-2] --> \" + str(l1[-5:-2]))\n", + "print (\"[-4:-6] --> \" + str(l1[-4:-6]))" + ], + "execution_count": 37, + "outputs": [ + { + "output_type": "stream", + "text": [ + "[-2:] --> ['Pythonistas', '!']\n", + "[:-3] --> ['Jennifer', 'and', 'Scarlett']\n", + "[-5:-2] --> ['and', 'Scarlett', 'now']\n", + "[-4:-6] --> []\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "95Rp2XP0aFa1", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + }, + "outputId": "42ad9718-e06c-48a9-a6bf-6833d832d0f3" + }, + "cell_type": "code", + "source": [ + "# Looping through a slice\n", + "l1 = [\"Pythonistas\", \"rock\", \"!!!\", \"XD\"]\n", + "for w in l1[-4:-1]:\n", + " print (w.upper())" + ], + "execution_count": 38, + "outputs": [ + { + "output_type": "stream", + "text": [ + "PYTHONISTAS\n", + "ROCK\n", + "!!!\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "wOytf0WvaJJm", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "c35af46b-a94a-42b6-e977-bd8bc8a38974" + }, + "cell_type": "code", + "source": [ + "# Copying a list\n", + "l1 = [\"We\", \"should\", \"use\", \"[:]\", \"to\", \"copy\", \"the\", \"whole\", \"list\"]\n", + "l2 = l1[:]\n", + "print(l2)" + ], + "execution_count": 39, + "outputs": [ + { + "output_type": "stream", + "text": [ + "['We', 'should', 'use', '[:]', 'to', 'copy', 'the', 'whole', 'list']\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "mduR7RZ5aJPy", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "cc30c44b-ecf8-4937-fbba-91e858a0272c" + }, + "cell_type": "code", + "source": [ + "# Proof that the above two lists are different\n", + "l2.append(\". Using [:] ensures the two lists are different\")\n", + "\n", + "print (l1)\n", + "print (l2)" + ], + "execution_count": 40, + "outputs": [ + { + "output_type": "stream", + "text": [ + "['We', 'should', 'use', '[:]', 'to', 'copy', 'the', 'whole', 'list']\n", + "['We', 'should', 'use', '[:]', 'to', 'copy', 'the', 'whole', 'list', '. Using [:] ensures the two lists are different']\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "gPP4WJ7qaJWc", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "7e24398b-0847-4fc7-adef-75cdf0a9ea85" + }, + "cell_type": "code", + "source": [ + "# What happens if we directly assign one list to the other instead of using slices\n", + "l1 = [\"Jennifer\", \"now\", \"wonders\", \"what\", \"happens\", \"if\", \"we\", \"directly\", \"assign.\"]\n", + "l2 = l1\n", + "l2.append(\"Both variables point to the same list\")\n", + "\n", + "print (l1)\n", + "print (l2)" + ], + "execution_count": 41, + "outputs": [ + { + "output_type": "stream", + "text": [ + "['Jennifer', 'now', 'wonders', 'what', 'happens', 'if', 'we', 'directly', 'assign.', 'Both variables point to the same list']\n", + "['Jennifer', 'now', 'wonders', 'what', 'happens', 'if', 'we', 'directly', 'assign.', 'Both variables point to the same list']\n" + ], + "name": "stdout" + } + ] + } + ] +} \ No newline at end of file diff --git a/WEEK1NO6TUPLE.ipynb b/WEEK1NO6TUPLE.ipynb new file mode 100644 index 0000000..eb15340 --- /dev/null +++ b/WEEK1NO6TUPLE.ipynb @@ -0,0 +1,253 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Untitled7.ipynb", + "version": "0.3.2", + "provenance": [], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "[View in Colaboratory](https://colab.research.google.com/github/ASIF8240233397/Assignment-1/blob/ASIF8240233397/WEEK1NO6TUPLE.ipynb)" + ] + }, + { + "metadata": { + "id": "raWpQTC-bAaU", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "c60b7e6c-ecd0-432b-f0b2-6624919e7b98" + }, + "cell_type": "code", + "source": [ + "# Simple Tuples\n", + "# Tuples are list, the elements stored in which cannot be changed.\n", + "t1 = (23, 45)\n", + "print (t1)\n", + "print (t1[1])" + ], + "execution_count": 1, + "outputs": [ + { + "output_type": "stream", + "text": [ + "(23, 45)\n", + "45\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "Jquc-jVGbfpe", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "88528c3a-5b8b-4b7c-e875-365022e15199" + }, + "cell_type": "code", + "source": [ + "# Can have more than two elements\n", + "t1 = (1, 2, 3, 4, 5, 6, 7)\n", + "print (t1)\n", + "print (t1[4])" + ], + "execution_count": 2, + "outputs": [ + { + "output_type": "stream", + "text": [ + "(1, 2, 3, 4, 5, 6, 7)\n", + "5\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "pF0g-AxybkEW", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "e4d9d5b0-a250-478b-82e6-0f1e3931b753" + }, + "cell_type": "code", + "source": [ + "# Cannot change the elements stored as compared to lists\n", + "l1 = [1, 2, 3, 4, 5, 6, 7]\n", + "t1 = (1, 2, 3, 4, 5, 6, 7)\n", + "\n", + "# Can change elements in list\n", + "l1[4] = 1\n", + "# Cannot change elements in tuple (Uncomment it to see the error)\n", + "#t1[4] = 1\n", + "\n", + "print (l1)\n", + "print (t1)" + ], + "execution_count": 3, + "outputs": [ + { + "output_type": "stream", + "text": [ + "[1, 2, 3, 4, 1, 6, 7]\n", + "(1, 2, 3, 4, 5, 6, 7)\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "lqjdIrWxbmFH", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 102 + }, + "outputId": "47d55168-6af4-4792-a307-12fba0c0a2c3" + }, + "cell_type": "code", + "source": [ + "# Looping over a tuple\n", + "t1 = (34, 12, 56, 78, 89)\n", + "for t in t1:\n", + " print (t)" + ], + "execution_count": 4, + "outputs": [ + { + "output_type": "stream", + "text": [ + "34\n", + "12\n", + "56\n", + "78\n", + "89\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "r6Smq-9CbmHF", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "d79d7a86-efc2-47fd-ca60-0bcd16544bad" + }, + "cell_type": "code", + "source": [ + "# Writing over a tuple\n", + "# One cannot change the elements stored in the tuple. \n", + "# But you can assign a new tuple to the variable that stores the tuple you wanna change.\n", + "t1 = (23, 12, 45, 78)\n", + "print (t1)\n", + "\n", + "t1 = (45, 67) # t1 changed to new value\n", + "print (t1)" + ], + "execution_count": 5, + "outputs": [ + { + "output_type": "stream", + "text": [ + "(23, 12, 45, 78)\n", + "(45, 67)\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "kTgKmVDWbmKG", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "DIN7jg6xbmLq", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "1jCPpew1bmOW", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "YWOvHXTpbmQG", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "bpzCXqkebmTf", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + } + ] +} \ No newline at end of file diff --git a/macinelearningday2.ipynb b/macinelearningday2.ipynb new file mode 100644 index 0000000..d30e35b --- /dev/null +++ b/macinelearningday2.ipynb @@ -0,0 +1,852 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Untitled17.ipynb", + "version": "0.3.2", + "provenance": [], + "collapsed_sections": [], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "[View in Colaboratory](https://colab.research.google.com/github/ASIF8240233397/Assignment-1/blob/ASIF8240233397/macinelearningday2.ipynb)" + ] + }, + { + "metadata": { + "id": "x_VDRd8mHpqO", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "import numpy as np\n", + "import pandas as pd \n", + "from sklearn import datasets,linear_model\n", + "from sklearn.model_selection import train_test_split,KFold" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "K_pTJunCIItB", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "diabetes=datasets.load_diabetes()" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "S1dSzVr2IR3E", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 938 + }, + "outputId": "498257a6-3b20-4375-cbbd-ed9eec40c8c8" + }, + "cell_type": "code", + "source": [ + "print (diabetes)" + ], + "execution_count": 9, + "outputs": [ + { + "output_type": "stream", + "text": [ + "{'data': array([[ 0.03807591, 0.05068012, 0.06169621, ..., -0.00259226,\n", + " 0.01990842, -0.01764613],\n", + " [-0.00188202, -0.04464164, -0.05147406, ..., -0.03949338,\n", + " -0.06832974, -0.09220405],\n", + " [ 0.08529891, 0.05068012, 0.04445121, ..., -0.00259226,\n", + " 0.00286377, -0.02593034],\n", + " ...,\n", + " [ 0.04170844, 0.05068012, -0.01590626, ..., -0.01107952,\n", + " -0.04687948, 0.01549073],\n", + " [-0.04547248, -0.04464164, 0.03906215, ..., 0.02655962,\n", + " 0.04452837, -0.02593034],\n", + " [-0.04547248, -0.04464164, -0.0730303 , ..., -0.03949338,\n", + " -0.00421986, 0.00306441]]), 'target': array([151., 75., 141., 206., 135., 97., 138., 63., 110., 310., 101.,\n", + " 69., 179., 185., 118., 171., 166., 144., 97., 168., 68., 49.,\n", + " 68., 245., 184., 202., 137., 85., 131., 283., 129., 59., 341.,\n", + " 87., 65., 102., 265., 276., 252., 90., 100., 55., 61., 92.,\n", + " 259., 53., 190., 142., 75., 142., 155., 225., 59., 104., 182.,\n", + " 128., 52., 37., 170., 170., 61., 144., 52., 128., 71., 163.,\n", + " 150., 97., 160., 178., 48., 270., 202., 111., 85., 42., 170.,\n", + " 200., 252., 113., 143., 51., 52., 210., 65., 141., 55., 134.,\n", + " 42., 111., 98., 164., 48., 96., 90., 162., 150., 279., 92.,\n", + " 83., 128., 102., 302., 198., 95., 53., 134., 144., 232., 81.,\n", + " 104., 59., 246., 297., 258., 229., 275., 281., 179., 200., 200.,\n", + " 173., 180., 84., 121., 161., 99., 109., 115., 268., 274., 158.,\n", + " 107., 83., 103., 272., 85., 280., 336., 281., 118., 317., 235.,\n", + " 60., 174., 259., 178., 128., 96., 126., 288., 88., 292., 71.,\n", + " 197., 186., 25., 84., 96., 195., 53., 217., 172., 131., 214.,\n", + " 59., 70., 220., 268., 152., 47., 74., 295., 101., 151., 127.,\n", + " 237., 225., 81., 151., 107., 64., 138., 185., 265., 101., 137.,\n", + " 143., 141., 79., 292., 178., 91., 116., 86., 122., 72., 129.,\n", + " 142., 90., 158., 39., 196., 222., 277., 99., 196., 202., 155.,\n", + " 77., 191., 70., 73., 49., 65., 263., 248., 296., 214., 185.,\n", + " 78., 93., 252., 150., 77., 208., 77., 108., 160., 53., 220.,\n", + " 154., 259., 90., 246., 124., 67., 72., 257., 262., 275., 177.,\n", + " 71., 47., 187., 125., 78., 51., 258., 215., 303., 243., 91.,\n", + " 150., 310., 153., 346., 63., 89., 50., 39., 103., 308., 116.,\n", + " 145., 74., 45., 115., 264., 87., 202., 127., 182., 241., 66.,\n", + " 94., 283., 64., 102., 200., 265., 94., 230., 181., 156., 233.,\n", + " 60., 219., 80., 68., 332., 248., 84., 200., 55., 85., 89.,\n", + " 31., 129., 83., 275., 65., 198., 236., 253., 124., 44., 172.,\n", + " 114., 142., 109., 180., 144., 163., 147., 97., 220., 190., 109.,\n", + " 191., 122., 230., 242., 248., 249., 192., 131., 237., 78., 135.,\n", + " 244., 199., 270., 164., 72., 96., 306., 91., 214., 95., 216.,\n", + " 263., 178., 113., 200., 139., 139., 88., 148., 88., 243., 71.,\n", + " 77., 109., 272., 60., 54., 221., 90., 311., 281., 182., 321.,\n", + " 58., 262., 206., 233., 242., 123., 167., 63., 197., 71., 168.,\n", + " 140., 217., 121., 235., 245., 40., 52., 104., 132., 88., 69.,\n", + " 219., 72., 201., 110., 51., 277., 63., 118., 69., 273., 258.,\n", + " 43., 198., 242., 232., 175., 93., 168., 275., 293., 281., 72.,\n", + " 140., 189., 181., 209., 136., 261., 113., 131., 174., 257., 55.,\n", + " 84., 42., 146., 212., 233., 91., 111., 152., 120., 67., 310.,\n", + " 94., 183., 66., 173., 72., 49., 64., 48., 178., 104., 132.,\n", + " 220., 57.]), 'DESCR': 'Diabetes dataset\\n================\\n\\nNotes\\n-----\\n\\nTen baseline variables, age, sex, body mass index, average blood\\npressure, and six blood serum measurements were obtained for each of n =\\n442 diabetes patients, as well as the response of interest, a\\nquantitative measure of disease progression one year after baseline.\\n\\nData Set Characteristics:\\n\\n :Number of Instances: 442\\n\\n :Number of Attributes: First 10 columns are numeric predictive values\\n\\n :Target: Column 11 is a quantitative measure of disease progression one year after baseline\\n\\n :Attributes:\\n :Age:\\n :Sex:\\n :Body mass index:\\n :Average blood pressure:\\n :S1:\\n :S2:\\n :S3:\\n :S4:\\n :S5:\\n :S6:\\n\\nNote: Each of these 10 feature variables have been mean centered and scaled by the standard deviation times `n_samples` (i.e. the sum of squares of each column totals 1).\\n\\nSource URL:\\nhttp://www4.stat.ncsu.edu/~boos/var.select/diabetes.html\\n\\nFor more information see:\\nBradley Efron, Trevor Hastie, Iain Johnstone and Robert Tibshirani (2004) \"Least Angle Regression,\" Annals of Statistics (with discussion), 407-499.\\n(http://web.stanford.edu/~hastie/Papers/LARS/LeastAngle_2002.pdf)\\n', 'feature_names': ['age', 'sex', 'bmi', 'bp', 's1', 's2', 's3', 's4', 's5', 's6']}\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "CCK18X8uI1pu", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "columns=\"age sex bmi map tc ldl hdl tch ltg glu\".split()" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "JEQINJLQJEUL", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "4384ec48-2915-4887-f4fe-0e48c19c10ba" + }, + "cell_type": "code", + "source": [ + "print(columns)" + ], + "execution_count": 11, + "outputs": [ + { + "output_type": "stream", + "text": [ + "['age', 'sex', 'bmi', 'map', 'tc', 'ldl', 'hdl', 'tch', 'ltg', 'glu']\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "KHPSdcoZJMgP", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "df=pd.DataFrame(diabetes.data,columns=columns)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "SaqPYULCJoH0", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 204 + }, + "outputId": "ea807514-268c-43eb-ba53-fda8152ad5b0" + }, + "cell_type": "code", + "source": [ + "df.head()" + ], + "execution_count": 14, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
agesexbmimaptcldlhdltchltgglu
00.0380760.0506800.0616960.021872-0.044223-0.034821-0.043401-0.0025920.019908-0.017646
1-0.001882-0.044642-0.051474-0.026328-0.008449-0.0191630.074412-0.039493-0.068330-0.092204
20.0852990.0506800.044451-0.005671-0.045599-0.034194-0.032356-0.0025920.002864-0.025930
3-0.089063-0.044642-0.011595-0.0366560.0121910.024991-0.0360380.0343090.022692-0.009362
40.005383-0.044642-0.0363850.0218720.0039350.0155960.008142-0.002592-0.031991-0.046641
\n", + "
" + ], + "text/plain": [ + " age sex bmi map tc ldl hdl \\\n", + "0 0.038076 0.050680 0.061696 0.021872 -0.044223 -0.034821 -0.043401 \n", + "1 -0.001882 -0.044642 -0.051474 -0.026328 -0.008449 -0.019163 0.074412 \n", + "2 0.085299 0.050680 0.044451 -0.005671 -0.045599 -0.034194 -0.032356 \n", + "3 -0.089063 -0.044642 -0.011595 -0.036656 0.012191 0.024991 -0.036038 \n", + "4 0.005383 -0.044642 -0.036385 0.021872 0.003935 0.015596 0.008142 \n", + "\n", + " tch ltg glu \n", + "0 -0.002592 0.019908 -0.017646 \n", + "1 -0.039493 -0.068330 -0.092204 \n", + "2 -0.002592 0.002864 -0.025930 \n", + "3 0.034309 0.022692 -0.009362 \n", + "4 -0.002592 -0.031991 -0.046641 " + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 14 + } + ] + }, + { + "metadata": { + "id": "9ycN7s3NJ7Zf", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 204 + }, + "outputId": "828d29b6-b33f-437f-ea0b-8cdf120800c8" + }, + "cell_type": "code", + "source": [ + "df.tail()" + ], + "execution_count": 15, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
agesexbmimaptcldlhdltchltgglu
4370.0417080.0506800.0196620.059744-0.005697-0.002566-0.028674-0.0025920.0311930.007207
438-0.0055150.050680-0.015906-0.0676420.0493410.079165-0.0286740.034309-0.0181180.044485
4390.0417080.050680-0.0159060.017282-0.037344-0.013840-0.024993-0.011080-0.0468790.015491
440-0.045472-0.0446420.0390620.0012150.0163180.015283-0.0286740.0265600.044528-0.025930
441-0.045472-0.044642-0.073030-0.0814140.0837400.0278090.173816-0.039493-0.0042200.003064
\n", + "
" + ], + "text/plain": [ + " age sex bmi map tc ldl hdl \\\n", + "437 0.041708 0.050680 0.019662 0.059744 -0.005697 -0.002566 -0.028674 \n", + "438 -0.005515 0.050680 -0.015906 -0.067642 0.049341 0.079165 -0.028674 \n", + "439 0.041708 0.050680 -0.015906 0.017282 -0.037344 -0.013840 -0.024993 \n", + "440 -0.045472 -0.044642 0.039062 0.001215 0.016318 0.015283 -0.028674 \n", + "441 -0.045472 -0.044642 -0.073030 -0.081414 0.083740 0.027809 0.173816 \n", + "\n", + " tch ltg glu \n", + "437 -0.002592 0.031193 0.007207 \n", + "438 0.034309 -0.018118 0.044485 \n", + "439 -0.011080 -0.046879 0.015491 \n", + "440 0.026560 0.044528 -0.025930 \n", + "441 -0.039493 -0.004220 0.003064 " + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 15 + } + ] + }, + { + "metadata": { + "id": "4hOhensYKNFu", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "y=diabetes.target" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "St9cj811KNOb", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "#create training and testing vars\n", + "X_train,X_test,y_train,y_test=train_test_split(df,y,test_size=0.2)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "oNs0srFqKNRW", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "454fddba-d7dc-46e2-fd1c-8ce69a305ea9" + }, + "cell_type": "code", + "source": [ + "print(X_train.shape,y_train.shape)" + ], + "execution_count": 30, + "outputs": [ + { + "output_type": "stream", + "text": [ + "(353, 10) (353,)\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "C5H85u37Mavl", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 561 + }, + "outputId": "7a92e2b2-01f4-4d0a-e310-9a3f082e09ea" + }, + "cell_type": "code", + "source": [ + "print (y)" + ], + "execution_count": 31, + "outputs": [ + { + "output_type": "stream", + "text": [ + "[151. 75. 141. 206. 135. 97. 138. 63. 110. 310. 101. 69. 179. 185.\n", + " 118. 171. 166. 144. 97. 168. 68. 49. 68. 245. 184. 202. 137. 85.\n", + " 131. 283. 129. 59. 341. 87. 65. 102. 265. 276. 252. 90. 100. 55.\n", + " 61. 92. 259. 53. 190. 142. 75. 142. 155. 225. 59. 104. 182. 128.\n", + " 52. 37. 170. 170. 61. 144. 52. 128. 71. 163. 150. 97. 160. 178.\n", + " 48. 270. 202. 111. 85. 42. 170. 200. 252. 113. 143. 51. 52. 210.\n", + " 65. 141. 55. 134. 42. 111. 98. 164. 48. 96. 90. 162. 150. 279.\n", + " 92. 83. 128. 102. 302. 198. 95. 53. 134. 144. 232. 81. 104. 59.\n", + " 246. 297. 258. 229. 275. 281. 179. 200. 200. 173. 180. 84. 121. 161.\n", + " 99. 109. 115. 268. 274. 158. 107. 83. 103. 272. 85. 280. 336. 281.\n", + " 118. 317. 235. 60. 174. 259. 178. 128. 96. 126. 288. 88. 292. 71.\n", + " 197. 186. 25. 84. 96. 195. 53. 217. 172. 131. 214. 59. 70. 220.\n", + " 268. 152. 47. 74. 295. 101. 151. 127. 237. 225. 81. 151. 107. 64.\n", + " 138. 185. 265. 101. 137. 143. 141. 79. 292. 178. 91. 116. 86. 122.\n", + " 72. 129. 142. 90. 158. 39. 196. 222. 277. 99. 196. 202. 155. 77.\n", + " 191. 70. 73. 49. 65. 263. 248. 296. 214. 185. 78. 93. 252. 150.\n", + " 77. 208. 77. 108. 160. 53. 220. 154. 259. 90. 246. 124. 67. 72.\n", + " 257. 262. 275. 177. 71. 47. 187. 125. 78. 51. 258. 215. 303. 243.\n", + " 91. 150. 310. 153. 346. 63. 89. 50. 39. 103. 308. 116. 145. 74.\n", + " 45. 115. 264. 87. 202. 127. 182. 241. 66. 94. 283. 64. 102. 200.\n", + " 265. 94. 230. 181. 156. 233. 60. 219. 80. 68. 332. 248. 84. 200.\n", + " 55. 85. 89. 31. 129. 83. 275. 65. 198. 236. 253. 124. 44. 172.\n", + " 114. 142. 109. 180. 144. 163. 147. 97. 220. 190. 109. 191. 122. 230.\n", + " 242. 248. 249. 192. 131. 237. 78. 135. 244. 199. 270. 164. 72. 96.\n", + " 306. 91. 214. 95. 216. 263. 178. 113. 200. 139. 139. 88. 148. 88.\n", + " 243. 71. 77. 109. 272. 60. 54. 221. 90. 311. 281. 182. 321. 58.\n", + " 262. 206. 233. 242. 123. 167. 63. 197. 71. 168. 140. 217. 121. 235.\n", + " 245. 40. 52. 104. 132. 88. 69. 219. 72. 201. 110. 51. 277. 63.\n", + " 118. 69. 273. 258. 43. 198. 242. 232. 175. 93. 168. 275. 293. 281.\n", + " 72. 140. 189. 181. 209. 136. 261. 113. 131. 174. 257. 55. 84. 42.\n", + " 146. 212. 233. 91. 111. 152. 120. 67. 310. 94. 183. 66. 173. 72.\n", + " 49. 64. 48. 178. 104. 132. 220. 57.]\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "EP2TcEKSN4c-", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 323 + }, + "outputId": "4c990b16-b26c-41fd-8103-07c4f33f0c79" + }, + "cell_type": "code", + "source": [ + "lm=linear_model.LinearRegression()\n", + "model=lm.fit(X_train,y_train)\n", + "predictions=model.predict(X_test)\n", + "print(predictions)\n" + ], + "execution_count": 33, + "outputs": [ + { + "output_type": "stream", + "text": [ + "[180.80981677 150.54003686 251.08477515 55.09071678 57.69481097\n", + " 151.3328439 97.81081205 88.91658892 67.40421687 82.45935631\n", + " 73.75721664 190.98033693 94.38258839 176.94414153 123.80550271\n", + " 94.20195721 233.33762806 141.71846159 121.5628225 221.80536763\n", + " 199.71490571 196.34812503 85.88628169 173.91499505 119.85708118\n", + " 123.80604131 152.76688719 189.66159378 147.11294801 137.94162683\n", + " 175.43050342 136.51667714 252.10409802 182.83205105 182.10050275\n", + " 251.70767221 186.38834841 175.0854061 158.52436828 165.81601246\n", + " 225.32367337 225.40473873 115.92469296 183.11449315 87.10023779\n", + " 110.14409854 153.42180064 251.01664412 162.02214779 134.33666295\n", + " 167.7159126 118.46324851 120.24057633 105.70980281 36.00943964\n", + " 153.4043427 129.60368989 136.33211125 115.25316868 174.3329796\n", + " 154.84630484 91.52205306 140.95519009 115.89444608 53.43602304\n", + " 178.77261834 196.82599676 181.11293048 292.07178491 139.31462898\n", + " 161.99733285 178.81770798 84.23715071 90.4069693 160.90290262\n", + " 162.36705051 171.44898114 203.11169386 149.0191631 160.09005479\n", + " 236.15009738 206.04606774 122.01177371 152.19354162 183.01318834\n", + " 129.99490723 133.49459359 152.78220775 125.28539486]\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "XI1PVoSqUE8_", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "995be539-8197-4326-92d6-46ec71741095" + }, + "cell_type": "code", + "source": [ + "#linear model\n", + "print(\"score\",model.score(X_test,y_test))" + ], + "execution_count": 34, + "outputs": [ + { + "output_type": "stream", + "text": [ + "score 0.5094949672859057\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "83mJU25zUE_2", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "f9f7c511-dd54-4234-c059-fe8995215306" + }, + "cell_type": "code", + "source": [ + "print(\"score\",model.score(X_test ,predictions))" + ], + "execution_count": 35, + "outputs": [ + { + "output_type": "stream", + "text": [ + "score 1.0\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "mg9F5z54UFFX", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "7a8fed23-3871-4367-c52a-99e4b6fd3ec4" + }, + "cell_type": "code", + "source": [ + "#KFold split example\n", + "x=np.array([[1,2],[3,4],[1,2],[3,4]])\n", + "y=np.array([1,2,3,4])\n", + "kf=KFold(n_splits=2)\n", + "kf.get_n_splits(x)\n", + "print(kf)" + ], + "execution_count": 37, + "outputs": [ + { + "output_type": "stream", + "text": [ + "KFold(n_splits=2, random_state=None, shuffle=False)\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "-E8g8ImpUFIR", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "36716c1c-6562-4442-ec42-4f605f96512e" + }, + "cell_type": "code", + "source": [ + "for train_index,test_index in kf.split(x):\n", + " print(\"TRAIN:\",train_index,\"TEST:\",test_index)\n", + " x_train,x_test=x[train_index],x[test_index]\n", + " y_train,y_test=y[train_index],y[test_index]" + ], + "execution_count": 38, + "outputs": [ + { + "output_type": "stream", + "text": [ + "TRAIN: [2 3] TEST: [0 1]\n", + "TRAIN: [0 1] TEST: [2 3]\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "X6K8v3XdUE78", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "6LvyrWVoN4fQ", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "vICDqwRVN4if", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "7z1phsVpN4kV", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "-5SJs43lN4nE", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "tOPjHOpoN4ou", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "JCn0slC1N4qe", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "Ju6itjsGN4th", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "RIqHaa0sN4xd", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + } + ] +} \ No newline at end of file diff --git a/week3mlcc.ipynb b/week3mlcc.ipynb new file mode 100644 index 0000000..606656e --- /dev/null +++ b/week3mlcc.ipynb @@ -0,0 +1,8678 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "week3mlcc.ipynb", + "version": "0.3.2", + "provenance": [], + "collapsed_sections": [], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "[View in Colaboratory](https://colab.research.google.com/github/ASIF8240233397/Assignment-1/blob/ASIF8240233397/week3mlcc.ipynb)" + ] + }, + { + "metadata": { + "id": "1nu_QWC7KV9F", + "colab_type": "code", + "colab": { + "resources": { + "http://localhost:8080/nbextensions/google.colab/files.js": { + "data": "Ly8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQwovLwovLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgovLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLy8KLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLy8KLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQovLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAovLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAovLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCi8qKgogKiBAZmlsZW92ZXJ2aWV3IEhlbHBlcnMgZm9yIGdvb2dsZS5jb2xhYiBQeXRob24gbW9kdWxlLgogKi8KKGZ1bmN0aW9uKHNjb3BlKSB7CmZ1bmN0aW9uIHNwYW4odGV4dCwgc3R5bGVBdHRyaWJ1dGVzID0ge30pIHsKICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwogIGVsZW1lbnQudGV4dENvbnRlbnQgPSB0ZXh0OwogIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHN0eWxlQXR0cmlidXRlcykpIHsKICAgIGVsZW1lbnQuc3R5bGVba2V5XSA9IHN0eWxlQXR0cmlidXRlc1trZXldOwogIH0KICByZXR1cm4gZWxlbWVudDsKfQoKLy8gTWF4IG51bWJlciBvZiBieXRlcyB3aGljaCB3aWxsIGJlIHVwbG9hZGVkIGF0IGEgdGltZS4KY29uc3QgTUFYX1BBWUxPQURfU0laRSA9IDEwMCAqIDEwMjQ7Ci8vIE1heCBhbW91bnQgb2YgdGltZSB0byBibG9jayB3YWl0aW5nIGZvciB0aGUgdXNlci4KY29uc3QgRklMRV9DSEFOR0VfVElNRU9VVF9NUyA9IDMwICogMTAwMDsKCmZ1bmN0aW9uIF91cGxvYWRGaWxlcyhpbnB1dElkLCBvdXRwdXRJZCkgewogIGNvbnN0IHN0ZXBzID0gdXBsb2FkRmlsZXNTdGVwKGlucHV0SWQsIG91dHB1dElkKTsKICBjb25zdCBvdXRwdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3V0cHV0SWQpOwogIC8vIENhY2hlIHN0ZXBzIG9uIHRoZSBvdXRwdXRFbGVtZW50IHRvIG1ha2UgaXQgYXZhaWxhYmxlIGZvciB0aGUgbmV4dCBjYWxsCiAgLy8gdG8gdXBsb2FkRmlsZXNDb250aW51ZSBmcm9tIFB5dGhvbi4KICBvdXRwdXRFbGVtZW50LnN0ZXBzID0gc3RlcHM7CgogIHJldHVybiBfdXBsb2FkRmlsZXNDb250aW51ZShvdXRwdXRJZCk7Cn0KCi8vIFRoaXMgaXMgcm91Z2hseSBhbiBhc3luYyBnZW5lcmF0b3IgKG5vdCBzdXBwb3J0ZWQgaW4gdGhlIGJyb3dzZXIgeWV0KSwKLy8gd2hlcmUgdGhlcmUgYXJlIG11bHRpcGxlIGFzeW5jaHJvbm91cyBzdGVwcyBhbmQgdGhlIFB5dGhvbiBzaWRlIGlzIGdvaW5nCi8vIHRvIHBvbGwgZm9yIGNvbXBsZXRpb24gb2YgZWFjaCBzdGVwLgovLyBUaGlzIHVzZXMgYSBQcm9taXNlIHRvIGJsb2NrIHRoZSBweXRob24gc2lkZSBvbiBjb21wbGV0aW9uIG9mIGVhY2ggc3RlcCwKLy8gdGhlbiBwYXNzZXMgdGhlIHJlc3VsdCBvZiB0aGUgcHJldmlvdXMgc3RlcCBhcyB0aGUgaW5wdXQgdG8gdGhlIG5leHQgc3RlcC4KZnVuY3Rpb24gX3VwbG9hZEZpbGVzQ29udGludWUob3V0cHV0SWQpIHsKICBjb25zdCBvdXRwdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3V0cHV0SWQpOwogIGNvbnN0IHN0ZXBzID0gb3V0cHV0RWxlbWVudC5zdGVwczsKCiAgY29uc3QgbmV4dCA9IHN0ZXBzLm5leHQob3V0cHV0RWxlbWVudC5sYXN0UHJvbWlzZVZhbHVlKTsKICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5leHQudmFsdWUucHJvbWlzZSkudGhlbigodmFsdWUpID0+IHsKICAgIC8vIENhY2hlIHRoZSBsYXN0IHByb21pc2UgdmFsdWUgdG8gbWFrZSBpdCBhdmFpbGFibGUgdG8gdGhlIG5leHQKICAgIC8vIHN0ZXAgb2YgdGhlIGdlbmVyYXRvci4KICAgIG91dHB1dEVsZW1lbnQubGFzdFByb21pc2VWYWx1ZSA9IHZhbHVlOwogICAgcmV0dXJuIG5leHQudmFsdWUucmVzcG9uc2U7CiAgfSk7Cn0KCi8qKgogKiBHZW5lcmF0b3IgZnVuY3Rpb24gd2hpY2ggaXMgY2FsbGVkIGJldHdlZW4gZWFjaCBhc3luYyBzdGVwIG9mIHRoZSB1cGxvYWQKICogcHJvY2Vzcy4KICogQHBhcmFtIHtzdHJpbmd9IGlucHV0SWQgRWxlbWVudCBJRCBvZiB0aGUgaW5wdXQgZmlsZSBwaWNrZXIgZWxlbWVudC4KICogQHBhcmFtIHtzdHJpbmd9IG91dHB1dElkIEVsZW1lbnQgSUQgb2YgdGhlIG91dHB1dCBkaXNwbGF5LgogKiBAcmV0dXJuIHshSXRlcmFibGU8IU9iamVjdD59IEl0ZXJhYmxlIG9mIG5leHQgc3RlcHMuCiAqLwpmdW5jdGlvbiogdXBsb2FkRmlsZXNTdGVwKGlucHV0SWQsIG91dHB1dElkKSB7CiAgY29uc3QgaW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaW5wdXRJZCk7CiAgaW5wdXRFbGVtZW50LmRpc2FibGVkID0gZmFsc2U7CgogIGNvbnN0IG91dHB1dEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChvdXRwdXRJZCk7CiAgb3V0cHV0RWxlbWVudC5pbm5lckhUTUwgPSAnJzsKCiAgY29uc3QgcGlja2VkUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICBpbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGUpID0+IHsKICAgICAgcmVzb2x2ZShlLnRhcmdldC5maWxlcyk7CiAgICB9KTsKICB9KTsKCiAgY29uc3QgY2FuY2VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CiAgaW5wdXRFbGVtZW50LnBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoY2FuY2VsKTsKICBjYW5jZWwudGV4dENvbnRlbnQgPSAnQ2FuY2VsIHVwbG9hZCc7CiAgY29uc3QgY2FuY2VsUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICBjYW5jZWwub25jbGljayA9ICgpID0+IHsKICAgICAgcmVzb2x2ZShudWxsKTsKICAgIH07CiAgfSk7CgogIC8vIENhbmNlbCB1cGxvYWQgaWYgdXNlciBoYXNuJ3QgcGlja2VkIGFueXRoaW5nIGluIHRpbWVvdXQuCiAgY29uc3QgdGltZW91dFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgIHJlc29sdmUobnVsbCk7CiAgICB9LCBGSUxFX0NIQU5HRV9USU1FT1VUX01TKTsKICB9KTsKCiAgLy8gV2FpdCBmb3IgdGhlIHVzZXIgdG8gcGljayB0aGUgZmlsZXMuCiAgY29uc3QgZmlsZXMgPSB5aWVsZCB7CiAgICBwcm9taXNlOiBQcm9taXNlLnJhY2UoW3BpY2tlZFByb21pc2UsIHRpbWVvdXRQcm9taXNlLCBjYW5jZWxQcm9taXNlXSksCiAgICByZXNwb25zZTogewogICAgICBhY3Rpb246ICdzdGFydGluZycsCiAgICB9CiAgfTsKCiAgaWYgKCFmaWxlcykgewogICAgcmV0dXJuIHsKICAgICAgcmVzcG9uc2U6IHsKICAgICAgICBhY3Rpb246ICdjb21wbGV0ZScsCiAgICAgIH0KICAgIH07CiAgfQoKICBjYW5jZWwucmVtb3ZlKCk7CgogIC8vIERpc2FibGUgdGhlIGlucHV0IGVsZW1lbnQgc2luY2UgZnVydGhlciBwaWNrcyBhcmUgbm90IGFsbG93ZWQuCiAgaW5wdXRFbGVtZW50LmRpc2FibGVkID0gdHJ1ZTsKCiAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7CiAgICBjb25zdCBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7CiAgICBsaS5hcHBlbmQoc3BhbihmaWxlLm5hbWUsIHtmb250V2VpZ2h0OiAnYm9sZCd9KSk7CiAgICBsaS5hcHBlbmQoc3BhbigKICAgICAgICBgKCR7ZmlsZS50eXBlIHx8ICduL2EnfSkgLSAke2ZpbGUuc2l6ZX0gYnl0ZXMsIGAgKwogICAgICAgIGBsYXN0IG1vZGlmaWVkOiAkewogICAgICAgICAgICBmaWxlLmxhc3RNb2RpZmllZERhdGUgPyBmaWxlLmxhc3RNb2RpZmllZERhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKCkgOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbi9hJ30gLSBgKSk7CiAgICBjb25zdCBwZXJjZW50ID0gc3BhbignMCUgZG9uZScpOwogICAgbGkuYXBwZW5kQ2hpbGQocGVyY2VudCk7CgogICAgb3V0cHV0RWxlbWVudC5hcHBlbmRDaGlsZChsaSk7CgogICAgY29uc3QgZmlsZURhdGFQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKICAgICAgcmVhZGVyLm9ubG9hZCA9IChlKSA9PiB7CiAgICAgICAgcmVzb2x2ZShlLnRhcmdldC5yZXN1bHQpOwogICAgICB9OwogICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZmlsZSk7CiAgICB9KTsKICAgIC8vIFdhaXQgZm9yIHRoZSBkYXRhIHRvIGJlIHJlYWR5LgogICAgbGV0IGZpbGVEYXRhID0geWllbGQgewogICAgICBwcm9taXNlOiBmaWxlRGF0YVByb21pc2UsCiAgICAgIHJlc3BvbnNlOiB7CiAgICAgICAgYWN0aW9uOiAnY29udGludWUnLAogICAgICB9CiAgICB9OwoKICAgIC8vIFVzZSBhIGNodW5rZWQgc2VuZGluZyB0byBhdm9pZCBtZXNzYWdlIHNpemUgbGltaXRzLiBTZWUgYi82MjExNTY2MC4KICAgIGxldCBwb3NpdGlvbiA9IDA7CiAgICB3aGlsZSAocG9zaXRpb24gPCBmaWxlRGF0YS5ieXRlTGVuZ3RoKSB7CiAgICAgIGNvbnN0IGxlbmd0aCA9IE1hdGgubWluKGZpbGVEYXRhLmJ5dGVMZW5ndGggLSBwb3NpdGlvbiwgTUFYX1BBWUxPQURfU0laRSk7CiAgICAgIGNvbnN0IGNodW5rID0gbmV3IFVpbnQ4QXJyYXkoZmlsZURhdGEsIHBvc2l0aW9uLCBsZW5ndGgpOwogICAgICBwb3NpdGlvbiArPSBsZW5ndGg7CgogICAgICBjb25zdCBiYXNlNjQgPSBidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwgY2h1bmspKTsKICAgICAgeWllbGQgewogICAgICAgIHJlc3BvbnNlOiB7CiAgICAgICAgICBhY3Rpb246ICdhcHBlbmQnLAogICAgICAgICAgZmlsZTogZmlsZS5uYW1lLAogICAgICAgICAgZGF0YTogYmFzZTY0LAogICAgICAgIH0sCiAgICAgIH07CiAgICAgIHBlcmNlbnQudGV4dENvbnRlbnQgPQogICAgICAgICAgYCR7TWF0aC5yb3VuZCgocG9zaXRpb24gLyBmaWxlRGF0YS5ieXRlTGVuZ3RoKSAqIDEwMCl9JSBkb25lYDsKICAgIH0KICB9CgogIC8vIEFsbCBkb25lLgogIHlpZWxkIHsKICAgIHJlc3BvbnNlOiB7CiAgICAgIGFjdGlvbjogJ2NvbXBsZXRlJywKICAgIH0KICB9Owp9CgpzY29wZS5nb29nbGUgPSBzY29wZS5nb29nbGUgfHwge307CnNjb3BlLmdvb2dsZS5jb2xhYiA9IHNjb3BlLmdvb2dsZS5jb2xhYiB8fCB7fTsKc2NvcGUuZ29vZ2xlLmNvbGFiLl9maWxlcyA9IHsKICBfdXBsb2FkRmlsZXMsCiAgX3VwbG9hZEZpbGVzQ29udGludWUsCn07Cn0pKHNlbGYpOwo=", + "ok": true, + "headers": [ + [ + "content-type", + "application/javascript" + ] + ], + "status": 200, + "status_text": "" + } + }, + "base_uri": "https://localhost:8080/", + "height": 72 + }, + "outputId": "cf2db5e0-5159-4689-ac2d-c69e1ae81fd4" + }, + "cell_type": "code", + "source": [ + "from google.colab import files\n", + "\n", + "uploaded = files.upload()\n" + ], + "execution_count": 2, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " Upload widget is only available when the cell has been executed in the\n", + " current browser session. Please rerun this cell to enable.\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "Saving fruit_data_with_colors.txt to fruit_data_with_colors (1).txt\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "T5gQYWz0KrDw", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "import pandas as pd\n", + "import matplotlib.pyplot as plt" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "_3ePcQSxKpb4", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 204 + }, + "outputId": "34ada3c3-758e-4ec4-d0c0-b3d60aa62a49" + }, + "cell_type": "code", + "source": [ + "fruits = pd.read_table(\"fruit_data_with_colors.txt\")\n", + "fruits.head()" + ], + "execution_count": 5, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
fruit_labelfruit_namefruit_subtypemasswidthheightcolor_score
01applegranny_smith1928.47.30.55
11applegranny_smith1808.06.80.59
21applegranny_smith1767.47.20.60
32mandarinmandarin866.24.70.80
42mandarinmandarin846.04.60.79
\n", + "
" + ], + "text/plain": [ + " fruit_label fruit_name fruit_subtype mass width height color_score\n", + "0 1 apple granny_smith 192 8.4 7.3 0.55\n", + "1 1 apple granny_smith 180 8.0 6.8 0.59\n", + "2 1 apple granny_smith 176 7.4 7.2 0.60\n", + "3 2 mandarin mandarin 86 6.2 4.7 0.80\n", + "4 2 mandarin mandarin 84 6.0 4.6 0.79" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 5 + } + ] + }, + { + "metadata": { + "id": "6K1EYxgARCSy", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "features_names=['mass','width','height','color_score']\n", + "X=fruits[features_names]\n", + "y=fruits['fruit_label']" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "y1mmYIq9LV_a", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "29ba5cbc-796b-4976-df52-db578f3d12e3" + }, + "cell_type": "code", + "source": [ + "print(fruits['fruit_name'].unique())" + ], + "execution_count": 6, + "outputs": [ + { + "output_type": "stream", + "text": [ + "['apple' 'mandarin' 'orange' 'lemon']\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "C-b3ECUCLWBH", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 119 + }, + "outputId": "75e80507-b3a1-49e5-ac4e-f8d44ab80134" + }, + "cell_type": "code", + "source": [ + "print(fruits.groupby('fruit_name').size())" + ], + "execution_count": 10, + "outputs": [ + { + "output_type": "stream", + "text": [ + "fruit_name\n", + "apple 19\n", + "lemon 16\n", + "mandarin 5\n", + "orange 19\n", + "dtype: int64\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "5oUIix0QLWDF", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 395 + }, + "outputId": "63a9e511-4538-4a8e-8dcf-0d8d541c41a1" + }, + "cell_type": "code", + "source": [ + "import seaborn as sns\n", + "sns.countplot(fruits['fruit_name'])\n", + "plt.show()" + ], + "execution_count": 11, + "outputs": [ + { + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.6/dist-packages/seaborn/categorical.py:1428: FutureWarning: remove_na is deprecated and is a private function. Do not use.\n", + " stat_data = remove_na(group_data)\n" + ], + "name": "stderr" + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\negRcg+cTB3t6BDjJrUfqYWFhOn36tOPyqVOnFBoaesl1BQUFCgsLc+d4AADUaW6Neu/evZWRkSFJ\nys3NVVhYmAICAiRJt956q0pLS3XixAlVVFTo/fffV+/evd05HgAAdZrFfj3OgddCUlKSPvnkE1ks\nFs2ZM0eHDx9WYGCg7r//fmVnZyspKUmS9MADD2j06NHuHA0AgDrN7VEHAACuwTvKAQBgCKIOAIAh\niHodExMTo7Nnz3p6DNTCH/7wB504ccKp606ZMkXnz5938URA3bF161YtWLDA02PUGR79O3UAVS1e\nvNjTIwCow4i6m5WWlio+Pl5lZWU6f/68Zs+ercmTJ2vQoEHKzMyUj4+PUlJStGvXLn344YcqLS3V\nyZMnNXLkSD366KOO7RQUFGjWrFm6cOGCvL29NW/ePDVr1syDj6zu27p1q7Kzs1VYWKijR49qypQp\n2rFjh7788kslJSXpnXfe0cGDB/XDDz/oiSee0ODBgzVz5kyFhYUpNzdX3377rZKSktSuXTvNmzdP\nBw4c0O23364LFy5Ikj7//HO9+OKLslqt8vLyUnJyskpLSzVt2jT5+/srNjZWCQkJ2r59uxISEi65\nXdTOhQsX9MILL+j48eMqLy/XxIkT9dJLLyk6OlqNGjVSnz59LrlPZs6cqebNm+uLL75Q27ZtlZiY\nqM8//1wzZ85UYGCgIiMjVVhYqL/85S9av369tm/fLi8vL/Xt21ejRo3y9MM20qW+zykpKSosLFRe\nXp5OnDihSZMmacuWLcrPz1dqaqqaN2+uhQsXav/+/aqsrNSwYcM0aNAgxcXFqVevXsrMzFRhYaFW\nrFhhzL+fnH53M5vNpsGDBystLU3PPvusUlNTJV18L/wNGzaobdu2euuttyRJx44d0/Lly7V27Vot\nWbJEP/74o2M7ycnJGjVqlNauXasRI0botdde88jjMc1///tfLV++XE899ZRWrlypZcuWacyYMdqy\nZYtuueUWbdy4URs2bFBy8s/vbldeXq5Vq1Zp+PDhevvtt3Xs2DHt379fb775puLj4/X1119Lks6c\nOaPZs2crLS1NXbp00fbt2yVJn332mZKSktSnT58qs/x6u6i9f/zjH/L19dW6deuUkpKihIQEVVRU\nKDo6WmPHjr3sPsnNzdWzzz6rzZs364MPPtD//vc/LVu2TOPHj1daWpq+/fZbSRc/s+K9997Txo0b\ntX79eu3cudOxDtfPiRMnLvt9Li4u1qpVq/Tggw/q7bffdny9e/duZWdn6+jRo9q0aZPWrl2rV199\n1fF5IwEBAVq7dq2io6O1c+dOTz6864ojdTdr3LixXnvtNa1atUrl5eXy9/eXJPXs2VOS1KlTJ2Vm\nZqpDhw6KioqS1WpVSEiIGjZsqMLCQsd2Dhw4oK+//lrLly9XZWVllffNx9WLjIyUxWJRaGio7rzz\nTnl7e6tx48a6cOGCiouLNXToUPn4+FTZF926dZMkNWnSRAcPHtSxY8fUsWNHeXl5qWnTpmrevLkk\nqVGjRkpKStL58+d16tQpDRgwQJLUvHnzKp+JcLntovZycnLUvXt3SVJ4eLh8fX1ls9nUoUMHSZff\nJy1atKjybpclJSX68ssv1aVLF0kXf7dlz549OnTokPLy8jR8+HBJ0tmzZ5Wfn2/MUd+NIjc3VxUV\nFdW+z5LUvn17SXLsL+niv7NFRUXKyclRVFSUJMnf31+tWrVSXl6epKrPr6KiIrc9Flcj6m62du1a\nhYeHa9GiRTp06JAWLlwo6ef3wbfb7bJYLJJU5cj8l8slycfHR8nJybyV7nVmtVov+fWJEyf0zTff\nKC0tTT4+PurcubNjnbe3t+Nru90uu90uL6+fT4L9tB8TExP15z//WdHR0Vq1apXKysokXdyXl/Lr\n7eLq/PJ7V15eLi8vL8f3/HL75Jff+5+28cvn4E//9/Hx0X333aeXXnrJHQ+l3vLy8rrk9zkzM/Oy\nz9lf/5spXXw55qfnpqnPL06/u1lhYaFatGghSdq1a5fj9dZPPvlEkvTpp5+qVatWjq8rKyv1/fff\n6+zZswoKCnJsp2PHjtq1a5ekix9p+9NpQ7hGTk6OmjRpIh8fH+3evVuVlZUqLy+/5HVvv/125ebm\nym63Kz8/33FEUVRUpBYtWqi8vFwffPCBY9/Dddq3b6+srCxJ0nfffScvLy/dfPPNjvW12SctWrRQ\nTk6OJOnf//63JKldu3bKysrSuXPnZLfbNW/ePP56wQWioqKu6vscGRnp2P9nz57VN998o5YtW7p6\nXI8i6m42cOBArVmzRqNGjVKHDh1ks9lkt9uVm5urESNG6IsvvtDAgQMlSbfccosmTZqkESNGaPLk\nyVWO/iZMmKDdu3dr2LBhWrZsmTp16uSph1Qv9OrVS3l5eYqNjdXx48d13333ae7cuZe8bps2bXTH\nHXdoyJAhSk5OVps2bSRJsbGxGj9+vCZOnKi4uDi99dZbjtf34Bq///3vVVlZqbi4OE2ZMqXakV5t\n9snYsWO1cOFCjR49Wo0aNZKXl5eaNWum4cOHa9iwYXr88ccVGhoqPz8/dzy0eiUoKOiqvs/dunVT\nZGSkhg0bplGjRik+Pt7xkqepeJvYG0BMTIy2b9+uBg0aOJZt3bpVR48e1YwZMzw4GYCffPrpp/Lz\n81ObNm20cuVK2e12Pf30054eC6iC19QBwAm+vr6aNWuW/Pz85Ofnp1deecXTIwHVcKQOAIAheE0d\nAABDEHUAAAxB1AEAMARRBwDAEEQdMNCkSZP0yCOP6OTJk1e87meffaaEhARJFz9vIDc319XjAXAR\nfvsdMFDbtm114MCBWr8RyvLly9W4cWMNHjzYRZMBcCX+Th0wzKxZs/Tjjz/qoYceksViUefOndW6\ndWuFhYXp448/VlJSkiQpLi5OY8eOlbe3t5YsWaLp06dr3bp1CggIkJ+fn+PDTX4tJSVFRUVFOnny\npPLy8tS9e3fNnj1bZWVlmjFjhoqKinT27Fk9+OCDGjNmjLKysrRixQo1adJEhw4dUseOHXXnnXfq\nn//8p4qKipSamqomTZooMzNTy5Ytk91ul9VqVUJCguPDcAA4h9PvgGESExMlSW+88YZOnjyp8ePH\nO/XOZ507d9Y999yjP/3pT5cN+k8OHz6spUuXavPmzdq6dauKi4t15swZ/e53v1NaWpo2bdqklStX\nOt5y9eDBg5oxY4a2bNmi7du36+abb1ZaWpratWun9957T+fOndOcOXOUkpKidevWKTY21vFhRwCc\nx5E6YLCGDRvqt7/97XXfbteuXeXt7S1vb28FBweruLhYjRs31r59+7Rp0yb5+Pjohx9+cHykZURE\nhOMDiYKCghyfchceHq7S0lIdPXpUNptNzzzzjCSpsrKy2idsAbgyog4Y7Jcf63qpj6G8Wpf6aNK1\na9eqvLxcGzdulMVicXyO+aWu/+uPvfT19VWzZs2UlpZ21TMB4PQ7UG8EBAQ4fhv+zJkzOnr0aLXr\nWCyWq479mTNnFBERIYvFot27d+v8+fOX/XjaX7vttttUWFioI0eOSJKys7OVnp5+VXMA9RlRB+qJ\n3r17q6KiQo8//riSkpIcp8B/qUePHlq2bJnWr19f6+0/+uijeuuttzR8+HCdOHFCAwYM0NSpU526\nrZ+fnxYtWqRZs2YpNjZWycnJioqKqvUMQH3Hn7QBAGAIXlMHUM2GDRv07rvvVlveuHFjLV682AMT\nAXAGR+oAABiC19QBADAEUQcAwBBEHQAAQxB1AAAMQdQBADDE/wNucPNWOhrCTQAAAABJRU5ErkJg\ngg==\n", + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "metadata": { + "id": "oW3V9gmoNFz-", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 361 + }, + "outputId": "e0aa1d1c-b1fa-4e12-c75f-e1fa9a8731f5" + }, + "cell_type": "code", + "source": [ + "y=fruits['fruit_label']\n", + "X=fruits.iloc[:,3:]\n", + "plt.scatter(X[y==1]['height'],X[y==1]['width'],label='Apple',c='red')\n", + "plt.scatter(X[y==2]['height'],X[y==2]['width'],label='mandarin',c='blue')\n", + "plt.scatter(X[y==3]['height'],X[y==3]['width'],label='orange',c='green')\n", + "plt.scatter(X[y==4]['height'],X[y==4]['width'],label='lemon',c='yellow')\n", + "\n", + "plt.legend()\n", + "plt.xlabel('height')\n", + "plt.ylabel('width')\n", + "plt.show()" + ], + "execution_count": 18, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\nExERScz/ByuduzGAJ4jnAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "metadata": { + "id": "heW0tHoTLWEn", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 361 + }, + "outputId": "dc502f1b-19d3-47c7-d9ae-5dcdb3cce6c6" + }, + "cell_type": "code", + "source": [ + "y=fruits['fruit_label']\n", + "X=fruits.iloc[:,3:]\n", + "plt.scatter(X[y==1]['mass'],X[y==1]['color_score'],label='Apple',c='red')\n", + "plt.scatter(X[y==2]['mass'],X[y==2]['color_score'],label='mandarin',c='blue')\n", + "plt.scatter(X[y==3]['mass'],X[y==3]['color_score'],label='orange',c='green')\n", + "plt.scatter(X[y==4]['mass'],X[y==4]['color_score'],label='lemon',c='yellow')\n", + "\n", + "plt.legend()\n", + "plt.xlabel('mass')\n", + "plt.ylabel('color_score')\n", + "plt.show()" + ], + "execution_count": 20, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\nTYSBpKSEUA8hLBk6LqXVUFHudZWlspwkZx0kpfh8uaFj0w6Ki2+KjW+RFpsOuzjndrtbLN90002M\nHDmSrl27cuONN1JSUsLgwYOZMWMGOTk5lJWVkZeXx+uvv05MTIzP7R44YNyjlqSkBGpqvg31MMKO\n4eNijceelo6lbPdJq5pS09lvjQcf79/wsWkjxcU3xca3cI1Na180gnb6PTk5mdraWs9ydXU1SUlJ\nnuXLLruM7t27Y7VaGTVqFF9++SUpKSlMmDABk8lEr169OPPMM6mqqgrWEEXCk81GQ85Er6saciaA\nzdbBAxKRSBG0pJ6VlUVJSQkAW7duJTk52XPq/dtvv2Xq1KkcPXoUgH/961+cc845rFmzhlWrVgFQ\nU1PDvn37SEnxfZpRxKjqCxfimDadpp5n4bZYaOp5Fo5p05tnv4uI+BC00+9DhgwhMzOT3NxcTCYT\nBQUFrF69moSEBMaNG8eoUaO46qqriI2NpX///lx88cXU19cze/Zs3nrrLRobGyksLGz11LuIYVmt\n1C9YSn1+AeaqvbhSeugIXUROyeQ+8WJ3hAnH6x2BEq7Xc0JNcfFNsfFOcfFNsfEtXGMTkmvqIiIi\n0rGU1EVERAxCSV1ERMQglNRFREQMQkldRETEIJTURUREDEJJXURExCCU1EVERAxCSV1ERMQglNRF\nREQMQkldRETEIJTURUREDEJJXURExCCU1EVERAxCSV1ERMQglNRFREQMwuR2u92hHoSIiIi0n47U\nRUREDEJJXURExCCU1EVERAxCSV1ERMQglNRFREQMQkldRETEIKyhHkC0+/LLL/ntb3/Lddddx+TJ\nk9mzZw+///3vaWpqIikpiT/84Q/ExMSwZs0a/vKXv2A2m7nyyiv51a9+FeqhB92JsZk7dy5bt26l\nW7duAEydOpXRo0dHXWzuuecePvnkE5xOJ7/5zW8477zztM9858TYvP3221G/zxw+fJi5c+eyb98+\nGhoa+O1vf0u/fv2ifp/xFpeSkpLI31/cEjL19fXuyZMnu+fPn+9+8skn3W632z137lz32rVr3W63\n2718+XL3008/7a6vr3ePHz/e/c0337gPHz7snjhxovvAgQOhHHrQeYvNnDlz3G+//fZJz4um2Kxf\nv959/fXXu91ut3v//v3un/70p9pnvuMtNtpn3O7XXnvNvXLlSrfb7XaXl5e7x48fr33G7T0uRthf\ndPo9hGJiYnjsscdITk72PPbRRx/xs5/9DIAxY8awfv16Nm3axHnnnUdCQgKdO3dmyJAhbNy4MVTD\n7hDeYuNNtMXm/PPPZ8WKFQCcccYZHD58WPvMd7zFpqmp6aTnRVtsJkyYwK9//WsA9uzZQ0pKivYZ\nvMfFm0iLi5J6CFmtVjp37tziscOHDxMTEwNA9+7dqampoba2Frvd7nmO3W6npqamQ8fa0bzFBuCp\np54iLy+Pm2++mf3790ddbCwWCzabDYAXX3yRUaNGaZ/5jrfYWCyWqN9njsnNzWX27Nnk5+drnznO\n8XGByP+M0TX1MOb2cQdfX48b3aWXXkq3bt0499xzWblyJQ899BCDBw9u8Zxoic2bb77Jiy++yOOP\nP8748eM9j2ufaRmbLVu2aJ/5znPPPcfnn3/Orbfe2uI9R/s+c3xc8vPzI35/0ZF6mLHZbBw5cgSA\nqqoqkpOTSU5Opra21vOc6urqU56WNqLhw4dz7rnnAjB27Fi+/PLLqIzNP//5T/74xz/y2GOPkZCQ\noH3mOCfGRvsMbNmyhT179gBw7rnn0tTURFxcXNTvM97i0rdv34jfX5TUw8yIESMoKSkB4PXXX2fk\nyJEMGjSIzZs3880331BfX8/GjRsZOnRoiEfa8X73u99RVlYGNM89OOecc6IuNt9++y333HMPjz76\nqGeGrvaZZt5io30GPv74Yx5//HEAamtrcTgc2mfwHpc77rgj4vcXdWkLoS1btrB06VIqKiqwWq2k\npKSwbNky5s6dS0NDA6mpqSxevJhOnTqxbt06Vq1ahclkYvLkyfz85z8P9fCDyltsJk+ezMqVK+nS\npQs2m43FixfTvXv3qIpNUVERDz74IL179/Y8tmTJEubPnx/1+4y32Pzyl7/kqaeeiup95siRI8yb\nN489e/Zw5MgRZsyYwYABA5gzZ05U7zPe4mKz2fjDH/4Q0fuLkrqIiIhB6PS7iIiIQSipi4iIGISS\nuoiIiEEoqYuIiBiEkrqIiIhBKKmLiIgYhJK6iIiIQeje7yICNN9B649//CM9evRg8+bNDBo0iB/+\n8Ie88cYbHDx4kMcee4y3336bv/3tb3Tq1InY2Fjuu+8+zjjjDJYtW8aHH35ITEwMKSkpLF26lJ07\nd3LHHXfQqVMnjhw5wo033sjo0aND/TZFDE1JXUQ8PvvsM+677z66dOnC+eefz/nnn8+TTz7J3Llz\nWbduHW63m1WrVhEfH88dd9zBmjVruOSSS3j66af5+OOPsVgsrF27ltraWp5//nnGjh3LtGnT2Ldv\nH//85z9D/fZEDE9JXUQ8MjIyPPdN79atm6dDVUpKCnV1daSlpTFt2jTMZjMVFRUkJSXRtWtXRo4c\nyeTJkxk3bhwTJkygR+kzz8YAAAExSURBVI8eXHTRRcydO5fKykrGjBnDpZdeGsq3JhIVdE1dRDws\nFovP5T179rB06VIefPBBnnrqKS6++GLPugceeIAFCxYAMHnyZD7//HPOP/98Xn31VUaNGsXq1auZ\nPXt2x7wJkSimI3UR8cu+fftITEyke/fuHDx4kPfee4/Ro0dTVlbGW2+9xXXXXUdGRgY1NTV88cUX\nfPzxx/zkJz9h7NixDBs2jMsuuyzUb0HE8JTURcQvx/pMX3HFFfTq1YubbrqJwsJCRo0axbZt27ji\niiuIi4uja9euzJgxg3//+9/MmjWLuLg4XC4Xs2bNCvE7EDE+dWkTERExCF1TFxERMQgldREREYNQ\nUhcRETEIJXURERGDUFIXERExCCV1ERERg1BSFxERMQgldREREYP4/wFjE/ISLnTuvwAAAABJRU5E\nrkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "metadata": { + "id": "CH5rNonqQ6xK", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "YE3xPYPsLWHz", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "features_names=['mass','width','height','color_score']\n", + "X=fruits[features_names]\n", + "y=fruits['fruit_label']" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "et__A2LSRrMB", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "from sklearn.model_selection import train_test_split\n", + "from sklearn.preprocessing import MinMaxScaler\n", + "\n", + "X_train , X_test , y_train ,y_test = train_test_split(X,y, random_state=0) \n", + "scaler = MinMaxScaler()\n", + "X_train = scaler.fit_transform(X_train)\n", + "X_test = scaler.fit_transform(X_test)\n" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "anvWDSrVTHYz", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "10f34cf7-f27b-4956-a54d-ddb4276387bb" + }, + "cell_type": "code", + "source": [ + "from sklearn.linear_model import LogisticRegression\n", + "\n", + "logerg = LogisticRegression()\n", + "logerg.fit(X_train , y_train)\n", + "print('Accuracy on Train Data', logerg.score(X_train , y_train))\n", + "print('Accuracy on Test Data', logerg.score(X_test , y_test))" + ], + "execution_count": 32, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Accuracy on Train Data 0.7045454545454546\n", + "Accuracy on Test Data 0.4\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "AgXWibbgUIOz", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "f672d0dd-a3c5-4bee-93f4-050a29c2aaf3" + }, + "cell_type": "code", + "source": [ + "from sklearn.tree import DecisionTreeClassifier\n", + "\n", + "clf = DecisionTreeClassifier().fit(X_train, y_train)\n", + "\n", + "print(\"Accuracy on Train Data\", clf.score(X_train , y_train))\n", + "print(\"Accuracy on Test Data\", clf.score(X_test , y_test))" + ], + "execution_count": 37, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Accuracy on Train Data 1.0\n", + "Accuracy on Test Data 0.6\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "vxSsKNy_Wd7b", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "b61e16ca-0253-4c77-9a49-1b7c3aed0035" + }, + "cell_type": "code", + "source": [ + "from sklearn.neighbors import KNeighborsClassifier\n", + "\n", + "knn = KNeighborsClassifier()\n", + "knn.fit(X_train, y_train)\n", + "print(\"Accuracy on Train Data\", knn.score(X_train , y_train))\n", + "print(\"Accuracy on Test Data\", knn.score(X_test , y_test))" + ], + "execution_count": 47, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Accuracy on Train Data 0.9545454545454546\n", + "Accuracy on Test Data 0.8\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "j_mf7ZyOYY5Q", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 619 + }, + "outputId": "df39b548-bf6a-426f-f4db-19841ad1dd6f" + }, + "cell_type": "code", + "source": [ + "from pandas.plotting import scatter_matrix\n", + "from matplotlib import cm\n", + "cmap= cm.get_cmap('gnuplot')\n", + "scatter=pd.plotting.scatter_matrix(X,c=y,marker='o', s=40 , hist_kwds={'bins':10}, figsize=(9,9), cmap=cmap)\n", + "\n", + "plt.suptitle(\"Scattermatrix for each input variable\")\n", + "plt.show()" + ], + "execution_count": 50, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiYAAAJaCAYAAAAbLoz8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzs3Xl0VeW98PHvHs6UeQ4BkhDmmYRR\nZRJQUFFrS5XWudahre3brr72lnu9V+1bW3W9d3XS1qutrb7WW68VEYeiWAUUEBlkEIEwk4QEEjKT\nnGnv/bx/HDhwSAJhCDnA77MWa3Ges4ff3mdnn9959jNoSimFEEIIIUQc0Ls7ACGEEEKIoyQxEUII\nIUTckMRECCGEEHFDEhMhhBBCxA1JTIQQQggRNyQxEUIIIUTckMREiIvMiBEj+OCDD85o3R//+MeU\nlJTw/PPPn+Oozr033niDCRMmdHr5N99887SWv9DMmjWLF198sVPLzps3jwceeOCM3xeiK5ndHYAQ\nnWHbNn/84x95++23qaysxLZtioqKuP3227n55pvPyT7++c9/0qdPH/r37w/AZ599hsvlYvTo0edk\n++dCZ2L64osvzmjb27Zt49133+W///u/GTNmzJmGGLduuukmbrrppvO2vxOvp672/vvvn5f9CNHV\npMZEXBCeeuopFixYwBNPPMHq1atZu3YtDzzwAD//+c958803z8k+fvvb37Jz587o67/85S+sX7/+\nnGz7XOnKmJqamgAoKirqku1fak68noQQnSOJibggfPLJJ1x77bWMHDkSl8uF2+3muuuu4+mnn2bg\nwIHR5d577z2uv/56iouLueGGG1iyZEn0vc8++4xbbrmFMWPGcMUVV/Cv//qvtLa2ApFq8O3bt/PQ\nQw9x3333cc8997BkyRJ+9atfMXv2bAAOHz7Mww8/zNSpUykuLuYb3/gGmzZtim5/+vTp/P73v+e6\n667j/vvvB2DQoEEsXLiQb3zjG4waNYo5c+ZQUVHBz372M8aOHcvkyZNZtGhRdBvbtm3jrrvuYvz4\n8YwfP57vf//71NTUALQbU0f7fO+999i5cycjRoxgzZo10e0/9thjzJ07F9u2Y87vRx99xD333APA\n1KlT+cMf/gDAggULuOGGGxg1ahTTpk3jueee4+hg0U8//TR33HEHjzzyCMXFxRw8eLDN56aU4vnn\n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\n8wlUVVWhteatt95g79738X2PtWvXc8cdu/MCQseLPEqEKGHz5u2cPXuWjo5iqqqquOGGm9h87bWM\nPPvd3DZW9XIQoAY7oXYNTsNG3M278U6NZ/2IWBE68NDJAXR6BJ0ewapeAXXr8Zv3TZLXO/Y6zsod\nOevt22+/OSmVt6urk+rqwvNkZWXh3+FCVFdX88gjX+C1116hs/Nc9iVM85Of/ICysnJuvvkjbNo0\ntVv9khSTG2+MgvLeeOONyTuybTo7O6mtrb20I5gjfP9WXPdpJgY/RgW6Jp8MNdqfF7TTee4c/QOD\nFFsaoXVuD6MBdGUs+t1ybt62kRU1O1izZi333ns/6XQarXXuYnjmmac5depkbp9vvrkHz8tw992f\nmJXjvZrx/Y9kKyqOv80otbxAAOzloyeUc/Y8j8OHDhAEAXErzWiY5uixI2zZvBW3phEhWsGysCqj\nwLCi7ffhH34xN5lkRoapzIxgpwdpja2gpKSEeDxOXV09+/btJQgCioqKGB0d5dSpE3zhC4/O3HFo\nzc9+9lN6erojWTIZXnzxeYQQXH+9CbKdTS41a2Yx8/LLL+a5MPft28vg4ACf//wXp70PrTX9/X3E\nYu4lx0QUorq6mo0bN3PkyHjLCyEEt9xyK3v2vJbn5jl4cD99fb18+ctfy40FwVYc551sj7bIbbNh\nw05WrvwvaB097FVyYFJ1VqtqOVbVchJ3/ClWWfR8iq26Dr95PzqTRBaVo0f70SpAxIpQ6RH0uRO4\nW+4u2JU+HOrK1seKymQUCsMIwxAhJJWVVfT3j38ei8Uu+yWmsXEljz76FdLpNP/6r/9MMhklk/T0\ndPPMM0/jujGWLClcV+Wygl//6Z/+iffff59rrrkGy7I4c+YMmzdvprW1lW9+85t86UtfuqwDmU3C\ncBPpdBGOsxdIE4brCILCP4osX4aw7Fw9k472VkolhMIBBFIE+KEmHWiaUha2Y5H0JFprnn32txw5\ncohYzKW8vJz77nuA8vLyPKVkjAMH9vOxj+3GcUyg46WgVCPp9Few7Xez1WBX4fvXMxY/NBPIygbI\ndgLu7u7KmST73CUsS7aA1pw718HaDbch2w6h06PYS1cj4gnCgXOk3vsVwnaw666lpLSUo8eOMDQ0\nyOHeo/SpOPX1DVRUVLBlyzakFKRSKeLxIurq6mluPst11124eNx0aW5uyiklE9m79z2jmBiuGPbt\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "metadata": { + "id": "IApDb4IDYY_s", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 376 + }, + "outputId": "43cd2081-2e5f-4762-abbc-d66f9d51823a" + }, + "cell_type": "code", + "source": [ + "import matplotlib.cm as cm\n", + "from matplotlib.colors import ListedColormap, BoundaryNorm\n", + "import matplotlib.patches as mpatches\n", + "import matplotlib.patches as mpatches\n", + "import numpy as np\n", + "\n", + "X = fruits[['mass', 'width', 'height', 'color_score']]\n", + "y = fruits['fruit_label']\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)\n", + "\n", + "def plot_fruit_knn(X, y, n_neighbors, weights):\n", + " X_mat = X[['height', 'width']].as_matrix()\n", + " y_mat = y.as_matrix()\n", + "\n", + "# Create color maps\n", + " cmap_light = ListedColormap(['#FFAAAA', '#AAFFAA', '#AAAAFF','#AFAFAF'])\n", + " cmap_bold = ListedColormap(['#FF0000', '#00FF00', '#0000FF','#AFAFAF'])\n", + "\n", + " clf = KNeighborsClassifier(n_neighbors, weights=weights)\n", + " clf.fit(X_mat, y_mat)\n", + "\n", + "# Plot the decision boundary by assigning a color in the color map\n", + " # to each mesh point.\n", + " \n", + " mesh_step_size = .01 # step size in the mesh\n", + " plot_symbol_size = 50\n", + " \n", + " x_min, x_max = X_mat[:, 0].min() - 1, X_mat[:, 0].max() + 1\n", + " y_min, y_max = X_mat[:, 1].min() - 1, X_mat[:, 1].max() + 1\n", + " xx, yy = np.meshgrid(np.arange(x_min, x_max, mesh_step_size),np.arange(y_min, y_max, mesh_step_size))\n", + " Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])\n", + "\n", + "# Put the result into a color plot\n", + " Z = Z.reshape(xx.shape)\n", + " plt.figure()\n", + " plt.pcolormesh(xx, yy, Z, cmap=cmap_light)\n", + "\n", + "# Plot training points\n", + " plt.scatter(X_mat[:, 0], X_mat[:, 1], s=plot_symbol_size, c=y, cmap=cmap_bold, edgecolor = 'black')\n", + " plt.xlim(xx.min(), xx.max())\n", + " plt.ylim(yy.min(), yy.max())\n", + "\n", + " patch0 = mpatches.Patch(color='#FF0000', label='apple')\n", + " patch1 = mpatches.Patch(color='#00FF00', label='mandarin')\n", + " patch2 = mpatches.Patch(color='#0000FF', label='orange')\n", + " patch3 = mpatches.Patch(color='#AFAFAF', label='lemon')\n", + " plt.legend(handles=[patch0, patch1, patch2, patch3])\n", + "\n", + " plt.xlabel('height (cm)')\n", + " plt.ylabel('width (cm)')\n", + " plt.title(\"4-Class classification (k = %i, weights = '%s')\"% (n_neighbors, weights)) \n", + " plt.show()\n", + "\n", + "plot_fruit_knn(X_train, y_train, 5, 'uniform')" + ], + "execution_count": 59, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAe0AAAFnCAYAAACLnxFFAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzs3Xd8VFX+//HXZGZSCIQ0SggdUyD0\nnkgJoQQQFJaySBHX7rqC5auiK+qursu67OpiWcv6E1dFAakqIkWBDT2hhRJKaAkJJYUkpE65vz8w\nQ4aZSZ1MST7Px4OH5t47555Je+ece4pKURQFIYQQQrg8D2dXQAghhBDVI6EthBBCuAkJbSGEEMJN\nSGgLIYQQbkJCWwghhHATEtpCCCGEm5DQFtWybds2IiIiSE9Pt3lNamoqTzzxBKNGjWL06NH89re/\n5ZdffgEgPT2dbt26Oaq6ZlavXs39999v93LHjh1LVlYWBoOB++67j7i4OE6ePGk6XhtZWVls3boV\ngCNHjvDggw/as8pcvnyZcePGkZWVRVxcHImJiXYrOyIigrFjx5r+zZ07125lW/Pll1/yzjvvVHpN\nZd93ZWVlrF27tj6qxrvvvsu7775b69c///zz/PzzzwD885//ZMiQIaxatcpe1TNJT08nLi6OK1eu\nMHbsWK5du2b3ewj70ji7AsL1FRcX849//AN/f3+b11y5coXZs2czf/583nvvPVQqFQcPHuTxxx9n\n8eLFdOzY0XEVdpCNGzcCkJmZyf79+zly5AhardZ0vDb27t3Lrl27GDlyJD179uTTTz+1V3UBePnl\nl3niiScIDg62a7nl6vLea2r27Nl1ev3x48dZu3YtkyZNslON7Oett94y/f+GDRv4+9//TnR0dL3d\nr1WrVjz88MO89tprvP/++/V2H1F30tIWVXr33Xe5++678fX1tXnN0qVLiYmJYcaMGahUKgD69OnD\nBx98QOfOnc2uNRqN/OlPfyI+Pp64uDiee+45dDodAPv27WPy5MmMHz+ecePG8eOPP1Z6/HYff/wx\nI0eOJD4+nr/+9a/cvnZQVlYWDz74IGPHjiUuLo7PPvvMdO7LL79k3LhxjB07lqlTp3L69OlKj0dE\nRHDp0iXmzJmD0Whk4sSJpKSkEBERweXLlyutz/vvv098fDyjRo3i0UcfJT8/n2PHjvHnP/+Zn376\niaeffpq9e/cyevRoAEpLS3nllVeIj49n3LhxLFq0CIPBAEBcXBzffPMNU6dOZciQISxatMjq5+bI\nkSOcO3eO8ePHW5xbuXIl06ZNo6SkxOpr68PKlSv5v//7P9PH48eP5+233wZufo8MHDiQnJwckpKS\nmDJlCqNHj2b69OmkpaUBN78v//jHPwJw7NgxxowZw5gxY3jvvfeYOHEie/fuNZX97bffMnHiRIYP\nH873339PVlYWf/jDHzh06BAzZ84E4O233yY+Pp74+Hjuu+8+rly5Uuv3FhAQQEBAgEVLv+LHq1ev\nZt68ebz00kvEx8czfvx40/fWnDlzWLduHc8++yyZmZm89NJLrFixguvXrzN//nzT9R9//LGp7IiI\nCD766CPi4+MxGAzExcXxxRdfMHnyZGJiYti0aRN/+tOfGDVqFNOnTycvLw+tVku7du0AuPvuuzl6\n9CgpKSm1ft/CARQhKpGSkqLcc889SllZmTJixAglLS3N6nVTpkxR1q1bZ7OctLQ0pWvXroqiKMrG\njRuVCRMmKGVlZUpJSYkybtw4Ze3atYqiKMpvfvMbZe/evYqiKMq5c+eUZ555ptLjFe3fv18ZPXq0\nUlBQoJSWlipTpkxRNmzYoKxatUqZO3euoiiK8uc//1l55ZVXFEVRlIsXLypRUVFKRkaGUlBQoPTv\n318pKChQFEVRNmzYoHz88cc2jyuKooSHhyuZmZlm763icVv1SU5OVqKjo5WCggLFYDAo999/v/L+\n++8riqIoS5YsUV566SVFURRlz549yqhRoxRFUZSPPvpIefjhhxWdTqcUFxcrU6ZMMX3ORowYoTzz\nzDOKXq9XLl++rERFRSmZmZkWn5+//e1vyhtvvGH6eMSIEcr+/ftN9bx27ZrFa/76178q8fHxFv/O\nnTtncW14eLjy7LPPKuPGjVNmzpypJCUlWVxT0cWLF5WRI0cqiqIo2dnZyrRp05TZs2criqIoJ06c\nUO655x6loKBAGTBggJKQkKAoiqJ89913yuTJky0+V5MnT1a++uorRVEU5bPPPlO6d++u7NmzR0lL\nS1MiIiKUZcuWKYqiKD/++KPpnhW/L06dOqWMGTNGKSsrUxRFUf773/8qa9assajzvffea/G5mD59\nus33ePv3RsWPV61apfTq1UtJTk5WFEVRXnvtNeWPf/yjoiiKMnv2bLOv7/79+xVFUZSFCxcqCxcu\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "metadata": { + "id": "hZzPPWfwYZCS", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "import numpy as np\n", + "from sklearn import datasets\n", + "import pandas as pd\n", + "from pandas import DataFrame as df" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "KymK9jyhYZFM", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "iris= datasets.load_iris()\n", + "\n", + "X= iris.data\n", + "y=iris.target\n", + "\n", + "X_train , X_test , y_train ,y_test = train_test_split(X,y, random_state=0) \n", + "scaler = MinMaxScaler()\n", + "X_train = scaler.fit_transform(X_train)\n", + "X_test = scaler.fit_transform(X_test)\n", + "\n", + "\n" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "kwnUAroCYY-d", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "f13bb566-45ec-4aff-c6b3-94716c3e1648" + }, + "cell_type": "code", + "source": [ + "from sklearn.linear_model import LogisticRegression\n", + "\n", + "logerg = LogisticRegression()\n", + "logerg.fit(X_train , y_train)\n", + "print('Accuracy on Train Data', logerg.score(X_train , y_train))\n", + "print('Accuracy on Test Data', logerg.score(X_test , y_test))" + ], + "execution_count": 61, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Accuracy on Train Data 0.8303571428571429\n", + "Accuracy on Test Data 0.6842105263157895\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "wqW9XeIvgYjH", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "c4c7ae1d-69ab-4963-8859-222fe3f12cfb" + }, + "cell_type": "code", + "source": [ + "from sklearn.tree import DecisionTreeClassifier\n", + "\n", + "clf = DecisionTreeClassifier().fit(X_train, y_train)\n", + "\n", + "print(\"Accuracy on Train Data\", clf.score(X_train , y_train))\n", + "print(\"Accuracy on Test Data\", clf.score(X_test , y_test))" + ], + "execution_count": 62, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Accuracy on Train Data 1.0\n", + "Accuracy on Test Data 0.868421052631579\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "cLY_39jGggir", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + }, + "outputId": "ae890b15-d995-4608-d263-559c05943f5d" + }, + "cell_type": "code", + "source": [ + "from sklearn.neighbors import KNeighborsClassifier\n", + "\n", + "knn = KNeighborsClassifier()\n", + "knn.fit(X_train, y_train)\n", + "print(\"Accuracy on Train Data\", knn.score(X_train , y_train))\n", + "print(\"Accuracy on Test Data\", knn.score(X_test , y_test))" + ], + "execution_count": 63, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Accuracy on Train Data 0.9642857142857143\n", + "Accuracy on Test Data 0.9736842105263158\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "jAJmQgxRsjwe", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 204 + }, + "outputId": "7d6897df-5e90-41a3-9a48-c3f2dc33df59" + }, + "cell_type": "code", + "source": [ + "iris= datasets.load_iris()\n", + "\n", + "X= iris.data\n", + "Y=iris.target\n", + "X=np.insert(X,X.shape[1],Y,axis=1)\n", + "data= pd.DataFrame(X)\n", + "data=data.reindex(np.random.permutation(data.index))\n", + "data.head()\n" + ], + "execution_count": 64, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
01234
1476.53.05.22.02.0
645.62.93.61.31.0
255.03.01.60.20.0
776.73.05.01.71.0
215.13.71.50.40.0
\n", + "
" + ], + "text/plain": [ + " 0 1 2 3 4\n", + "147 6.5 3.0 5.2 2.0 2.0\n", + "64 5.6 2.9 3.6 1.3 1.0\n", + "25 5.0 3.0 1.6 0.2 0.0\n", + "77 6.7 3.0 5.0 1.7 1.0\n", + "21 5.1 3.7 1.5 0.4 0.0" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 64 + } + ] + }, + { + "metadata": { + "id": "m1AqFpLE6un9", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 128367 + }, + "outputId": "c9bd173c-8c08-44fe-a908-dbc8de51fe4c" + }, + "cell_type": "code", + "source": [ + "features= data.iloc[:,:4]\n", + "target= data.iloc[:,4]\n", + "\n", + "target=target.values.reshape((target.shape[0],1))\n", + "target_class=np.zeros(shape=(target.shape[0],3))\n", + "for i in range (target.shape[0]):\n", + " if target[i]==0:\n", + " target_class[i][0]=1\n", + " elif target[i]==1:\n", + " target_class[i][1]=1\n", + " else:\n", + " \n", + " target_class[i][2]=1\n", + " print(target_class.shape)\n", + " #print(target.shape)\n", + " \n", + " print(target_class)" + ], + "execution_count": 74, + "outputs": [ + { + "output_type": "stream", + "text": [ + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "(150, 3)\n", + "[[0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 1. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [1. 0. 0.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 1.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "QkIzANLr8wD_", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "def sigmoid(x):\n", + " return 1/(1+np.exp(-x))\n", + "def der_sigmoid(x):\n", + " return (sigmoid(x)*(1-sigmoid(x)))\n", + "\n" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "AKpaBeBg-9-R", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "input_nodes=features.shape[1]\n", + "output_nodes=3\n", + "weight_matrix= np.random.uniform(size=(input_nodes, output_nodes))\n", + "epoch=1000\n", + "lr=0.02" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "N_MdwV8m_sU3", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "for i in range(epoch):\n", + " output_node_input=features.dot(weight_matrix)\n", + " output=sigmoid(output_node_input)\n", + " error=target_class-output\n", + " drv= der_sigmoid(output_node_input)\n", + " delta_weight=error*drv\n", + " weight_matrix= weight_matrix + lr*features.T.dot(delta_weight)\n", + " \n", + " " + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "JIEzspxVAxLy", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 136 + }, + "outputId": "9027e855-3753-4e96-9ef2-cd9a04e734c0" + }, + "cell_type": "code", + "source": [ + "final_output = np.array(output)\n", + "# print(final_output)\n", + "output_class=np.zeros(shape=final_output.shape[0])\n", + "\n", + "for i in range(final_output.shape[0]):\n", + " output_class[i]=np.argmax(final_output[i])\n", + "print(output_class)\n", + "class_diff = output_class - target[: , 0 ] \n" + ], + "execution_count": 91, + "outputs": [ + { + "output_type": "stream", + "text": [ + "[1. 1. 0. 1. 0. 1. 0. 0. 0. 0. 0. 1. 1. 1. 1. 0. 1. 1. 0. 1. 1. 1. 0. 1.\n", + " 1. 1. 1. 1. 0. 1. 1. 0. 1. 0. 1. 1. 0. 0. 0. 0. 1. 1. 0. 1. 1. 0. 1. 1.\n", + " 1. 0. 0. 1. 1. 0. 0. 1. 0. 0. 1. 0. 1. 1. 0. 1. 0. 1. 1. 1. 1. 1. 1. 1.\n", + " 1. 0. 1. 0. 1. 1. 1. 1. 1. 0. 1. 0. 1. 0. 1. 1. 0. 1. 1. 0. 0. 1. 0. 0.\n", + " 1. 1. 1. 1. 1. 0. 0. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1.\n", + " 1. 1. 1. 0. 1. 1. 0. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 0. 1. 1. 0. 0. 0. 1.\n", + " 1. 1. 1. 1. 0. 1.]\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "5M6myr56CVlW", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 323 + }, + "outputId": "08acc204-6b27-43aa-bbc7-b181495feaf6" + }, + "cell_type": "code", + "source": [ + "print('Actual Case')\n", + "print(target[:,0])\n", + "\n", + "print('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>')\n", + "\n", + "print('predicted class')\n", + "\n", + "print(output_class)\n", + "wrong_prediction = np.count_nonzero(class_diff)\n", + "\n", + "N= len(class_diff)\n", + "simple_accuracy = 100 *(N-wrong_prediction)/N\n", + "print(\"Accuracy : \",(simple_accuracy), '%')\n", + "\n" + ], + "execution_count": 98, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Actual Case\n", + "[2. 1. 0. 1. 0. 2. 0. 0. 0. 0. 0. 2. 1. 2. 1. 0. 2. 2. 0. 2. 2. 2. 0. 1.\n", + " 1. 2. 2. 1. 0. 1. 2. 0. 2. 0. 2. 2. 0. 0. 0. 0. 1. 2. 0. 2. 2. 0. 2. 1.\n", + " 1. 0. 0. 2. 1. 0. 0. 2. 0. 0. 2. 0. 2. 1. 0. 2. 0. 2. 1. 1. 2. 2. 1. 1.\n", + " 1. 0. 2. 0. 1. 2. 2. 1. 1. 0. 1. 0. 1. 0. 2. 2. 0. 1. 2. 0. 0. 1. 0. 0.\n", + " 2. 1. 2. 1. 2. 0. 0. 1. 1. 1. 1. 0. 2. 2. 2. 2. 1. 1. 1. 1. 0. 1. 1. 1.\n", + " 2. 2. 2. 0. 1. 1. 0. 1. 2. 1. 1. 1. 2. 0. 2. 1. 1. 0. 1. 1. 0. 0. 0. 2.\n", + " 2. 2. 2. 1. 0. 1.]\n", + ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n", + "predicted class\n", + "[1. 1. 0. 1. 0. 1. 0. 0. 0. 0. 0. 1. 1. 1. 1. 0. 1. 1. 0. 1. 1. 1. 0. 1.\n", + " 1. 1. 1. 1. 0. 1. 1. 0. 1. 0. 1. 1. 0. 0. 0. 0. 1. 1. 0. 1. 1. 0. 1. 1.\n", + " 1. 0. 0. 1. 1. 0. 0. 1. 0. 0. 1. 0. 1. 1. 0. 1. 0. 1. 1. 1. 1. 1. 1. 1.\n", + " 1. 0. 1. 0. 1. 1. 1. 1. 1. 0. 1. 0. 1. 0. 1. 1. 0. 1. 1. 0. 0. 1. 0. 0.\n", + " 1. 1. 1. 1. 1. 0. 0. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1.\n", + " 1. 1. 1. 0. 1. 1. 0. 1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 0. 1. 1. 0. 0. 0. 1.\n", + " 1. 1. 1. 1. 0. 1.]\n", + "Accuracy : 66.66666666666667 %\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "6lzo7qJ_Gw9K", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "BLG39l_nHiMz", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "" + ] + } + ] +} \ No newline at end of file