{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "4f242ff6", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 2, "id": "b7d6be03", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\sadma\\AppData\\Local\\Temp\\ipykernel_16112\\2952862037.py:5: DtypeWarning: Columns (3) have mixed types. Specify dtype option on import or set low_memory=False.\n", " books = pd.read_csv(url1, encoding='latin-1')\n" ] }, { "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", "
ISBNBook-TitleBook-AuthorYear-Of-PublicationPublisherImage-URL-SImage-URL-MImage-URL-L
00195153448Classical MythologyMark P. O. Morford2002Oxford University Presshttp://images.amazon.com/images/P/0195153448.0...http://images.amazon.com/images/P/0195153448.0...http://images.amazon.com/images/P/0195153448.0...
10002005018Clara CallanRichard Bruce Wright2001HarperFlamingo Canadahttp://images.amazon.com/images/P/0002005018.0...http://images.amazon.com/images/P/0002005018.0...http://images.amazon.com/images/P/0002005018.0...
20060973129Decision in NormandyCarlo D'Este1991HarperPerennialhttp://images.amazon.com/images/P/0060973129.0...http://images.amazon.com/images/P/0060973129.0...http://images.amazon.com/images/P/0060973129.0...
30374157065Flu: The Story of the Great Influenza Pandemic...Gina Bari Kolata1999Farrar Straus Girouxhttp://images.amazon.com/images/P/0374157065.0...http://images.amazon.com/images/P/0374157065.0...http://images.amazon.com/images/P/0374157065.0...
40393045218The Mummies of UrumchiE. J. W. Barber1999W. W. Norton & Companyhttp://images.amazon.com/images/P/0393045218.0...http://images.amazon.com/images/P/0393045218.0...http://images.amazon.com/images/P/0393045218.0...
\n", "
" ], "text/plain": [ " ISBN Book-Title \\\n", "0 0195153448 Classical Mythology \n", "1 0002005018 Clara Callan \n", "2 0060973129 Decision in Normandy \n", "3 0374157065 Flu: The Story of the Great Influenza Pandemic... \n", "4 0393045218 The Mummies of Urumchi \n", "\n", " Book-Author Year-Of-Publication Publisher \\\n", "0 Mark P. O. Morford 2002 Oxford University Press \n", "1 Richard Bruce Wright 2001 HarperFlamingo Canada \n", "2 Carlo D'Este 1991 HarperPerennial \n", "3 Gina Bari Kolata 1999 Farrar Straus Giroux \n", "4 E. J. W. Barber 1999 W. W. Norton & Company \n", "\n", " Image-URL-S \\\n", "0 http://images.amazon.com/images/P/0195153448.0... \n", "1 http://images.amazon.com/images/P/0002005018.0... \n", "2 http://images.amazon.com/images/P/0060973129.0... \n", "3 http://images.amazon.com/images/P/0374157065.0... \n", "4 http://images.amazon.com/images/P/0393045218.0... \n", "\n", " Image-URL-M \\\n", "0 http://images.amazon.com/images/P/0195153448.0... \n", "1 http://images.amazon.com/images/P/0002005018.0... \n", "2 http://images.amazon.com/images/P/0060973129.0... \n", "3 http://images.amazon.com/images/P/0374157065.0... \n", "4 http://images.amazon.com/images/P/0393045218.0... \n", "\n", " Image-URL-L \n", "0 http://images.amazon.com/images/P/0195153448.0... \n", "1 http://images.amazon.com/images/P/0002005018.0... \n", "2 http://images.amazon.com/images/P/0060973129.0... \n", "3 http://images.amazon.com/images/P/0374157065.0... \n", "4 http://images.amazon.com/images/P/0393045218.0... " ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "url1 = \"datasets/books.csv\"\n", "url2 = \"datasets/ratings.csv\"\n", "url3 = \"datasets/users.csv\"\n", "\n", "books = pd.read_csv(url1, encoding='latin-1')\n", "ratings = pd.read_csv(url2, encoding='latin-1')\n", "users = pd.read_csv(url3, encoding='latin-1')\n", "books.head()" ] }, { "cell_type": "code", "execution_count": 3, "id": "7dcac8bd", "metadata": {}, "outputs": [ { "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", "
User-IDISBNBook-Rating
0276725034545104X0
127672601550612245
227672704465208020
3276729052165615X3
427672905217950286
\n", "
" ], "text/plain": [ " User-ID ISBN Book-Rating\n", "0 276725 034545104X 0\n", "1 276726 0155061224 5\n", "2 276727 0446520802 0\n", "3 276729 052165615X 3\n", "4 276729 0521795028 6" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ratings.head()" ] }, { "cell_type": "code", "execution_count": 4, "id": "87afa6a4", "metadata": {}, "outputs": [ { "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", "
User-IDLocationAge
01nyc, new york, usaNaN
12stockton, california, usa18.0
23moscow, yukon territory, russiaNaN
34porto, v.n.gaia, portugal17.0
45farnborough, hants, united kingdomNaN
\n", "
" ], "text/plain": [ " User-ID Location Age\n", "0 1 nyc, new york, usa NaN\n", "1 2 stockton, california, usa 18.0\n", "2 3 moscow, yukon territory, russia NaN\n", "3 4 porto, v.n.gaia, portugal 17.0\n", "4 5 farnborough, hants, united kingdom NaN" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "users.head()" ] }, { "cell_type": "code", "execution_count": 5, "id": "a4776127", "metadata": {}, "outputs": [], "source": [ "books.columns = books.columns.str.lower().str.replace(\" \", \"_\").str.replace(\"-\", \"_\")\n", "ratings.columns = ratings.columns.str.lower().str.replace(\" \", \"_\").str.replace(\"-\", \"_\")\n", "users.columns = users.columns.str.lower().str.replace(\" \", \"_\").str.replace(\"-\", \"_\")" ] }, { "cell_type": "code", "execution_count": 6, "id": "6ccc16e7", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['isbn', 'book_name', 'author', 'year_of_publication', 'publisher',\n", " 'image_url_s', 'image_url_m', 'image_url'],\n", " dtype='object')" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "books.rename(columns={\n", " \"book_title\": \"book_name\",\n", " \"book_author\": \"author\",\n", " \"image_url_l\": \"image_url\"\n", " }, inplace=True)\n", "books.columns" ] }, { "cell_type": "code", "execution_count": 7, "id": "509db8c9", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['isbn', 'book_name', 'author', 'publisher', 'image_url'], dtype='object')" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "books.drop([\n", " \"image_url_s\",\n", " \"image_url_m\",\n", " \"year_of_publication\"\n", " ], axis=1, inplace=True)\n", "books.columns" ] }, { "cell_type": "code", "execution_count": 8, "id": "74a80e62", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['user_id', 'isbn', 'ratings'], dtype='object')" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ratings.rename(columns={\n", " \"book_rating\": \"ratings\"\n", " }, inplace=True)\n", "ratings.columns\n" ] }, { "cell_type": "code", "execution_count": 9, "id": "45376706", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['user_id', 'location'], dtype='object')" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "users.drop(columns={\n", " \"age\"\n", " }, inplace=True)\n", "users.columns" ] }, { "cell_type": "code", "execution_count": 10, "id": "cfa6a8e0", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(271360, 5)\n", "(1149780, 3)\n", "(278858, 2)\n" ] } ], "source": [ "print(books.shape)\n", "print(ratings.shape)\n", "print(users.shape)" ] }, { "cell_type": "markdown", "id": "2bc1b7f7", "metadata": {}, "source": [ "#### There are 271360 books \n", "#### There are 278858 users\n", "#### 278858 users rated 1149780" ] }, { "cell_type": "code", "execution_count": 11, "id": "2b21229a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "isbn 0\n", "book_name 0\n", "author 2\n", "publisher 2\n", "image_url 3\n", "dtype: int64" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "books.isnull().sum()" ] }, { "cell_type": "code", "execution_count": 12, "id": "94d0373b", "metadata": {}, "outputs": [], "source": [ "books.dropna(inplace=True)" ] }, { "cell_type": "code", "execution_count": 13, "id": "81b90706", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "isbn 0\n", "book_name 0\n", "author 0\n", "publisher 0\n", "image_url 0\n", "dtype: int64" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "books.isnull().sum()" ] }, { "cell_type": "code", "execution_count": 14, "id": "e8e46e91", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "user_id 0\n", "isbn 0\n", "ratings 0\n", "dtype: int64" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ratings.isnull().sum()" ] }, { "cell_type": "code", "execution_count": 15, "id": "1fca21a7", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "user_id 0\n", "location 0\n", "dtype: int64" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "users.isnull().sum()" ] }, { "cell_type": "code", "execution_count": 16, "id": "29e83d6e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "np.int64(0)" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "books.duplicated().sum()" ] }, { "cell_type": "code", "execution_count": 17, "id": "5fe84163", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "np.int64(0)" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ratings.duplicated().sum()" ] }, { "cell_type": "code", "execution_count": 18, "id": "10df484b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "np.int64(0)" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "users.duplicated().sum()" ] }, { "cell_type": "markdown", "id": "a2987762", "metadata": {}, "source": [ "## Step 1: Merge Rarings and Books Together" ] }, { "cell_type": "code", "execution_count": 19, "id": "971f806a", "metadata": {}, "outputs": [ { "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", "
user_idisbnratingsbook_nameauthorpublisherimage_url
0276725034545104X0Flesh Tones: A NovelM. J. RoseBallantine Bookshttp://images.amazon.com/images/P/034545104X.0...
127672601550612245Rites of PassageJudith RaeHeinlehttp://images.amazon.com/images/P/0155061224.0...
227672704465208020The NotebookNicholas SparksWarner Bookshttp://images.amazon.com/images/P/0446520802.0...
3276729052165615X3Help!: Level 1Philip ProwseCambridge University Presshttp://images.amazon.com/images/P/052165615X.0...
427672905217950286The Amsterdam Connection : Level 4 (Cambridge ...Sue LeatherCambridge University Presshttp://images.amazon.com/images/P/0521795028.0...
\n", "
" ], "text/plain": [ " user_id isbn ratings \\\n", "0 276725 034545104X 0 \n", "1 276726 0155061224 5 \n", "2 276727 0446520802 0 \n", "3 276729 052165615X 3 \n", "4 276729 0521795028 6 \n", "\n", " book_name author \\\n", "0 Flesh Tones: A Novel M. J. Rose \n", "1 Rites of Passage Judith Rae \n", "2 The Notebook Nicholas Sparks \n", "3 Help!: Level 1 Philip Prowse \n", "4 The Amsterdam Connection : Level 4 (Cambridge ... Sue Leather \n", "\n", " publisher \\\n", "0 Ballantine Books \n", "1 Heinle \n", "2 Warner Books \n", "3 Cambridge University Press \n", "4 Cambridge University Press \n", "\n", " image_url \n", "0 http://images.amazon.com/images/P/034545104X.0... \n", "1 http://images.amazon.com/images/P/0155061224.0... \n", "2 http://images.amazon.com/images/P/0446520802.0... \n", "3 http://images.amazon.com/images/P/052165615X.0... \n", "4 http://images.amazon.com/images/P/0521795028.0... " ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ratings_with_books = ratings.merge(books, on=\"isbn\", how=\"inner\")\n", "ratings_with_books.head()" ] }, { "cell_type": "code", "execution_count": 20, "id": "850feff9", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(1031128, 7)" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ratings_with_books.shape" ] }, { "cell_type": "markdown", "id": "917999f1", "metadata": {}, "source": [ "## Step 2: find users who rated > 200 books\n" ] }, { "cell_type": "code", "execution_count": 21, "id": "ed99caee", "metadata": {}, "outputs": [ { "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", " \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", "
isbnratingsbook_nameauthorpublisherimage_url
user_id
2111111
8171717171717
9333333
10111111
12111111
.....................
278846111111
278849444444
278851232323232323
278852111111
278854888888
\n", "

92106 rows × 6 columns

\n", "
" ], "text/plain": [ " isbn ratings book_name author publisher image_url\n", "user_id \n", "2 1 1 1 1 1 1\n", "8 17 17 17 17 17 17\n", "9 3 3 3 3 3 3\n", "10 1 1 1 1 1 1\n", "12 1 1 1 1 1 1\n", "... ... ... ... ... ... ...\n", "278846 1 1 1 1 1 1\n", "278849 4 4 4 4 4 4\n", "278851 23 23 23 23 23 23\n", "278852 1 1 1 1 1 1\n", "278854 8 8 8 8 8 8\n", "\n", "[92106 rows x 6 columns]" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ratings_with_books.groupby(\"user_id\").count()" ] }, { "cell_type": "code", "execution_count": 22, "id": "c6a046fb", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "user_id\n", "2 1\n", "8 17\n", "9 3\n", "10 1\n", "12 1\n", " ..\n", "278846 1\n", "278849 4\n", "278851 23\n", "278852 1\n", "278854 8\n", "Name: ratings, Length: 92106, dtype: int64" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ratings_with_books.groupby(\"user_id\").count()[\"ratings\"]" ] }, { "cell_type": "code", "execution_count": 23, "id": "01191e50", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "user_id\n", "2 False\n", "8 False\n", "9 False\n", "10 False\n", "12 False\n", " ... \n", "278846 False\n", "278849 False\n", "278851 False\n", "278852 False\n", "278854 False\n", "Name: ratings, Length: 92106, dtype: bool" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ratings_with_books.groupby(\"user_id\").count()[\"ratings\"] > 200" ] }, { "cell_type": "code", "execution_count": 24, "id": "644e03b5", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "user_id\n", "254 True\n", "2276 True\n", "2766 True\n", "2977 True\n", "3363 True\n", " ... \n", "274308 True\n", "275970 True\n", "277427 True\n", "277639 True\n", "278418 True\n", "Name: ratings, Length: 811, dtype: bool" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "users_rated_books_more_then_200 = ratings_with_books.groupby(\"user_id\").count()[\"ratings\"] > 200\n", "users_rated_books_more_then_200[users_rated_books_more_then_200]" ] }, { "cell_type": "code", "execution_count": 25, "id": "3ccdf70f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index([ 254, 2276, 2766, 2977, 3363, 4017, 4385, 6251, 6323,\n", " 6543,\n", " ...\n", " 271705, 273979, 274004, 274061, 274301, 274308, 275970, 277427, 277639,\n", " 278418],\n", " dtype='int64', name='user_id', length=811)" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "users_rated_books_more_then_200[users_rated_books_more_then_200].index" ] }, { "cell_type": "code", "execution_count": 26, "id": "89cad2e9", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index([ 254, 2276, 2766, 2977, 3363, 4017, 4385, 6251, 6323,\n", " 6543,\n", " ...\n", " 271705, 273979, 274004, 274061, 274301, 274308, 275970, 277427, 277639,\n", " 278418],\n", " dtype='int64', name='user_id', length=811)" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "users_rated_books_more_then_200 = users_rated_books_more_then_200[users_rated_books_more_then_200].index\n", "users_rated_books_more_then_200" ] }, { "cell_type": "code", "execution_count": 27, "id": "bd361f98", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 False\n", "1 False\n", "2 False\n", "3 False\n", "4 False\n", " ... \n", "1031123 False\n", "1031124 False\n", "1031125 False\n", "1031126 False\n", "1031127 False\n", "Name: user_id, Length: 1031128, dtype: bool" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ratings_with_books[\"user_id\"].isin(users_rated_books_more_then_200)" ] }, { "cell_type": "code", "execution_count": 28, "id": "782b5ab0", "metadata": {}, "outputs": [ { "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", " \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", "
user_idisbnratingsbook_nameauthorpublisherimage_url
1150277427002542730X10Politically Correct Bedtime Stories: Modern Ta...James Finn GarnerJohn Wiley & Sons Inchttp://images.amazon.com/images/P/002542730X.0...
115127742700262174570Vegetarian Times Complete CookbookLucy MollJohn Wiley & Sonshttp://images.amazon.com/images/P/0026217457.0...
1152277427003008685X8PioneersJames Fenimore CooperThomson Learninghttp://images.amazon.com/images/P/003008685X.0...
115327742700306153210Ask for May, Settle for June (A Doonesbury book)G. B. TrudeauHenry Holt & Cohttp://images.amazon.com/images/P/0030615321.0...
115427742700600020500On a Wicked Dawn (Cynster Novels)Stephanie LaurensAvon Bookshttp://images.amazon.com/images/P/0060002050.0...
........................
102934927597019318681230There's a Porcupine in My Outhouse: Misadventu...Mike TougiasCapital Books (VA)http://images.amazon.com/images/P/1931868123.0...
1029350275970341108621110Die Biene.Sybil Gr�¤fin Sch�¶nfeldtBibliographisches Institut, Mannheimhttp://images.amazon.com/images/P/3411086211.0...
102935127597038290218600The Penis BookJoseph CohenKonemannhttp://images.amazon.com/images/P/3829021860.0...
102935227597047700195720MusashiEiji YoshikawaKodansha International (JPN)http://images.amazon.com/images/P/4770019572.0...
102935327597096263407628Northanger Abbey (Classic Literature with Clas...Jane AustenNaxos Audiobooks Ltd.http://images.amazon.com/images/P/9626340762.0...
\n", "

474002 rows × 7 columns

\n", "
" ], "text/plain": [ " user_id isbn ratings \\\n", "1150 277427 002542730X 10 \n", "1151 277427 0026217457 0 \n", "1152 277427 003008685X 8 \n", "1153 277427 0030615321 0 \n", "1154 277427 0060002050 0 \n", "... ... ... ... \n", "1029349 275970 1931868123 0 \n", "1029350 275970 3411086211 10 \n", "1029351 275970 3829021860 0 \n", "1029352 275970 4770019572 0 \n", "1029353 275970 9626340762 8 \n", "\n", " book_name \\\n", "1150 Politically Correct Bedtime Stories: Modern Ta... \n", "1151 Vegetarian Times Complete Cookbook \n", "1152 Pioneers \n", "1153 Ask for May, Settle for June (A Doonesbury book) \n", "1154 On a Wicked Dawn (Cynster Novels) \n", "... ... \n", "1029349 There's a Porcupine in My Outhouse: Misadventu... \n", "1029350 Die Biene. \n", "1029351 The Penis Book \n", "1029352 Musashi \n", "1029353 Northanger Abbey (Classic Literature with Clas... \n", "\n", " author \\\n", "1150 James Finn Garner \n", "1151 Lucy Moll \n", "1152 James Fenimore Cooper \n", "1153 G. B. Trudeau \n", "1154 Stephanie Laurens \n", "... ... \n", "1029349 Mike Tougias \n", "1029350 Sybil Gr�¤fin Sch�¶nfeldt \n", "1029351 Joseph Cohen \n", "1029352 Eiji Yoshikawa \n", "1029353 Jane Austen \n", "\n", " publisher \\\n", "1150 John Wiley & Sons Inc \n", "1151 John Wiley & Sons \n", "1152 Thomson Learning \n", "1153 Henry Holt & Co \n", "1154 Avon Books \n", "... ... \n", "1029349 Capital Books (VA) \n", "1029350 Bibliographisches Institut, Mannheim \n", "1029351 Konemann \n", "1029352 Kodansha International (JPN) \n", "1029353 Naxos Audiobooks Ltd. \n", "\n", " image_url \n", "1150 http://images.amazon.com/images/P/002542730X.0... \n", "1151 http://images.amazon.com/images/P/0026217457.0... \n", "1152 http://images.amazon.com/images/P/003008685X.0... \n", "1153 http://images.amazon.com/images/P/0030615321.0... \n", "1154 http://images.amazon.com/images/P/0060002050.0... \n", "... ... \n", "1029349 http://images.amazon.com/images/P/1931868123.0... \n", "1029350 http://images.amazon.com/images/P/3411086211.0... \n", "1029351 http://images.amazon.com/images/P/3829021860.0... \n", "1029352 http://images.amazon.com/images/P/4770019572.0... \n", "1029353 http://images.amazon.com/images/P/9626340762.0... \n", "\n", "[474002 rows x 7 columns]" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#filter 1\n", "filter1 = ratings_with_books[ratings_with_books[\"user_id\"].isin(users_rated_books_more_then_200)]\n", "filter1" ] }, { "cell_type": "markdown", "id": "6e043ba0", "metadata": {}, "source": [ "## Step 3: find books rated > 50 " ] }, { "cell_type": "code", "execution_count": 29, "id": "1fbfaf14", "metadata": {}, "outputs": [ { "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", " \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", "
user_idisbnratingsauthorpublisherimage_url
book_name
A Light in the Storm: The Civil War Diary of Amelia Martin, Fenwick Island, Delaware, 1861 (Dear America)222222
Always Have Popsicles111111
Apple Magic (The Collector's series)111111
Beyond IBM: Leadership Marketing and Finance for the 1990s111111
Clifford Visita El Hospital (Clifford El Gran Perro Colorado)111111
.....................
Ã?Â?ber das Fernsehen.222222
Ã?Â?ber die Pflicht zum Ungehorsam gegen den Staat.333333
Ã?Â?lpiraten.111111
Ã?Â?stlich der Berge.111111
Ã?Â?thique en toc111111
\n", "

155841 rows × 6 columns

\n", "
" ], "text/plain": [ " user_id isbn ratings \\\n", "book_name \n", " A Light in the Storm: The Civil War Diary of A... 2 2 2 \n", " Always Have Popsicles 1 1 1 \n", " Apple Magic (The Collector's series) 1 1 1 \n", " Beyond IBM: Leadership Marketing and Finance f... 1 1 1 \n", " Clifford Visita El Hospital (Clifford El Gran ... 1 1 1 \n", "... ... ... ... \n", "Ã?Â?ber das Fernsehen. 2 2 2 \n", "Ã?Â?ber die Pflicht zum Ungehorsam gegen den ... 3 3 3 \n", "Ã?Â?lpiraten. 1 1 1 \n", "Ã?Â?stlich der Berge. 1 1 1 \n", "Ã?Â?thique en toc 1 1 1 \n", "\n", " author publisher \\\n", "book_name \n", " A Light in the Storm: The Civil War Diary of A... 2 2 \n", " Always Have Popsicles 1 1 \n", " Apple Magic (The Collector's series) 1 1 \n", " Beyond IBM: Leadership Marketing and Finance f... 1 1 \n", " Clifford Visita El Hospital (Clifford El Gran ... 1 1 \n", "... ... ... \n", "Ã?Â?ber das Fernsehen. 2 2 \n", "Ã?Â?ber die Pflicht zum Ungehorsam gegen den ... 3 3 \n", "Ã?Â?lpiraten. 1 1 \n", "Ã?Â?stlich der Berge. 1 1 \n", "Ã?Â?thique en toc 1 1 \n", "\n", " image_url \n", "book_name \n", " A Light in the Storm: The Civil War Diary of A... 2 \n", " Always Have Popsicles 1 \n", " Apple Magic (The Collector's series) 1 \n", " Beyond IBM: Leadership Marketing and Finance f... 1 \n", " Clifford Visita El Hospital (Clifford El Gran ... 1 \n", "... ... \n", "Ã?Â?ber das Fernsehen. 2 \n", "Ã?Â?ber die Pflicht zum Ungehorsam gegen den ... 3 \n", "Ã?Â?lpiraten. 1 \n", "Ã?Â?stlich der Berge. 1 \n", "Ã?Â?thique en toc 1 \n", "\n", "[155841 rows x 6 columns]" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "filter1.groupby(\"book_name\").count()" ] }, { "cell_type": "code", "execution_count": 30, "id": "42fb385d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "book_name\n", " A Light in the Storm: The Civil War Diary of Amelia Martin, Fenwick Island, Delaware, 1861 (Dear America) 2\n", " Always Have Popsicles 1\n", " Apple Magic (The Collector's series) 1\n", " Beyond IBM: Leadership Marketing and Finance for the 1990s 1\n", " Clifford Visita El Hospital (Clifford El Gran Perro Colorado) 1\n", " ..\n", "Ã?Â?ber das Fernsehen. 2\n", "Ã?Â?ber die Pflicht zum Ungehorsam gegen den Staat. 3\n", "Ã?Â?lpiraten. 1\n", "Ã?Â?stlich der Berge. 1\n", "Ã?Â?thique en toc 1\n", "Name: ratings, Length: 155841, dtype: int64" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "filter1.groupby(\"book_name\").count()[\"ratings\"]" ] }, { "cell_type": "code", "execution_count": 31, "id": "7bb303b0", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "book_name\n", " A Light in the Storm: The Civil War Diary of Amelia Martin, Fenwick Island, Delaware, 1861 (Dear America) False\n", " Always Have Popsicles False\n", " Apple Magic (The Collector's series) False\n", " Beyond IBM: Leadership Marketing and Finance for the 1990s False\n", " Clifford Visita El Hospital (Clifford El Gran Perro Colorado) False\n", " ... \n", "Ã?Â?ber das Fernsehen. False\n", "Ã?Â?ber die Pflicht zum Ungehorsam gegen den Staat. False\n", "Ã?Â?lpiraten. False\n", "Ã?Â?stlich der Berge. False\n", "Ã?Â?thique en toc False\n", "Name: ratings, Length: 155841, dtype: bool" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "filter1.groupby(\"book_name\").count()[\"ratings\"] > 50" ] }, { "cell_type": "code", "execution_count": 32, "id": "4274fc76", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "book_name\n", "1984 True\n", "1st to Die: A Novel True\n", "2nd Chance True\n", "4 Blondes True\n", "A Bend in the Road True\n", " ... \n", "Year of Wonders True\n", "You Belong To Me True\n", "Zen and the Art of Motorcycle Maintenance: An Inquiry into Values True\n", "Zoya True\n", "\\O\\\" Is for Outlaw\" True\n", "Name: ratings, Length: 706, dtype: bool" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "filter2 = filter1.groupby(\"book_name\").count()[\"ratings\"] >= 50\n", "filter2[filter2]" ] }, { "cell_type": "code", "execution_count": 33, "id": "bc76ba3e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['1984', '1st to Die: A Novel', '2nd Chance', '4 Blondes',\n", " 'A Bend in the Road', 'A Case of Need',\n", " 'A Child Called \\It\\\": One Child's Courage to Survive\"',\n", " 'A Civil Action', 'A Day Late and a Dollar Short', 'A Fine Balance',\n", " ...\n", " 'Winter Solstice', 'Wish You Well', 'Without Remorse',\n", " 'Wizard and Glass (The Dark Tower, Book 4)', 'Wuthering Heights',\n", " 'Year of Wonders', 'You Belong To Me',\n", " 'Zen and the Art of Motorcycle Maintenance: An Inquiry into Values',\n", " 'Zoya', '\\O\\\" Is for Outlaw\"'],\n", " dtype='object', name='book_name', length=706)" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "filter2[filter2].index" ] }, { "cell_type": "code", "execution_count": 34, "id": "6c7e4717", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['1984', '1st to Die: A Novel', '2nd Chance', '4 Blondes',\n", " 'A Bend in the Road', 'A Case of Need',\n", " 'A Child Called \\It\\\": One Child's Courage to Survive\"',\n", " 'A Civil Action', 'A Day Late and a Dollar Short', 'A Fine Balance',\n", " ...\n", " 'Winter Solstice', 'Wish You Well', 'Without Remorse',\n", " 'Wizard and Glass (The Dark Tower, Book 4)', 'Wuthering Heights',\n", " 'Year of Wonders', 'You Belong To Me',\n", " 'Zen and the Art of Motorcycle Maintenance: An Inquiry into Values',\n", " 'Zoya', '\\O\\\" Is for Outlaw\"'],\n", " dtype='object', name='book_name', length=706)" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = filter2[filter2].index\n", "df" ] }, { "cell_type": "code", "execution_count": 35, "id": "ac8c06d1", "metadata": {}, "outputs": [ { "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", " \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", "
user_idisbnratingsbook_nameauthorpublisherimage_url
1150277427002542730X10Politically Correct Bedtime Stories: Modern Ta...James Finn GarnerJohn Wiley & Sons Inchttp://images.amazon.com/images/P/002542730X.0...
116327742700609305350The Poisonwood Bible: A NovelBarbara KingsolverPerennialhttp://images.amazon.com/images/P/0060930535.0...
116527742700609344170Bel Canto: A NovelAnn PatchettPerennialhttp://images.amazon.com/images/P/0060934417.0...
116827742700610090599One for the Money (Stephanie Plum Novels (Pape...Janet EvanovichHarperTorchhttp://images.amazon.com/images/P/0061009059.0...
1174277427006440188X0The Secret GardenFrances Hodgson BurnettHarperTrophyhttp://images.amazon.com/images/P/006440188X.0...
........................
102918827597014000313540Tears of the Giraffe (No.1 Ladies Detective Ag...Alexander McCall SmithAnchorhttp://images.amazon.com/images/P/1400031354.0...
102918927597014000313620Morality for Beautiful Girls (No.1 Ladies Dete...Alexander McCall SmithAnchorhttp://images.amazon.com/images/P/1400031362.0...
102926227597015732297250FingersmithSarah WatersRiverhead Bookshttp://images.amazon.com/images/P/1573229725.0...
102930127597015862106619Me Talk Pretty One DayDavid SedarisTime Warner Audio Majorhttp://images.amazon.com/images/P/1586210661.0...
102930227597015862122300NakedDavid SedarisTime Warner Audio Majorhttp://images.amazon.com/images/P/1586212230.0...
\n", "

58586 rows × 7 columns

\n", "
" ], "text/plain": [ " user_id isbn ratings \\\n", "1150 277427 002542730X 10 \n", "1163 277427 0060930535 0 \n", "1165 277427 0060934417 0 \n", "1168 277427 0061009059 9 \n", "1174 277427 006440188X 0 \n", "... ... ... ... \n", "1029188 275970 1400031354 0 \n", "1029189 275970 1400031362 0 \n", "1029262 275970 1573229725 0 \n", "1029301 275970 1586210661 9 \n", "1029302 275970 1586212230 0 \n", "\n", " book_name \\\n", "1150 Politically Correct Bedtime Stories: Modern Ta... \n", "1163 The Poisonwood Bible: A Novel \n", "1165 Bel Canto: A Novel \n", "1168 One for the Money (Stephanie Plum Novels (Pape... \n", "1174 The Secret Garden \n", "... ... \n", "1029188 Tears of the Giraffe (No.1 Ladies Detective Ag... \n", "1029189 Morality for Beautiful Girls (No.1 Ladies Dete... \n", "1029262 Fingersmith \n", "1029301 Me Talk Pretty One Day \n", "1029302 Naked \n", "\n", " author publisher \\\n", "1150 James Finn Garner John Wiley & Sons Inc \n", "1163 Barbara Kingsolver Perennial \n", "1165 Ann Patchett Perennial \n", "1168 Janet Evanovich HarperTorch \n", "1174 Frances Hodgson Burnett HarperTrophy \n", "... ... ... \n", "1029188 Alexander McCall Smith Anchor \n", "1029189 Alexander McCall Smith Anchor \n", "1029262 Sarah Waters Riverhead Books \n", "1029301 David Sedaris Time Warner Audio Major \n", "1029302 David Sedaris Time Warner Audio Major \n", "\n", " image_url \n", "1150 http://images.amazon.com/images/P/002542730X.0... \n", "1163 http://images.amazon.com/images/P/0060930535.0... \n", "1165 http://images.amazon.com/images/P/0060934417.0... \n", "1168 http://images.amazon.com/images/P/0061009059.0... \n", "1174 http://images.amazon.com/images/P/006440188X.0... \n", "... ... \n", "1029188 http://images.amazon.com/images/P/1400031354.0... \n", "1029189 http://images.amazon.com/images/P/1400031362.0... \n", "1029262 http://images.amazon.com/images/P/1573229725.0... \n", "1029301 http://images.amazon.com/images/P/1586210661.0... \n", "1029302 http://images.amazon.com/images/P/1586212230.0... \n", "\n", "[58586 rows x 7 columns]" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = filter1[filter1[\"book_name\"].isin(df)]\n", "df" ] }, { "cell_type": "code", "execution_count": 36, "id": "6c133884", "metadata": {}, "outputs": [ { "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", " \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", " \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", " \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", "
user_id254227627662977336340174385625163236543...271705273979274004274061274301274308275970277427277639278418
book_name
19849.0NaNNaNNaNNaNNaNNaNNaNNaNNaN...10.0NaNNaNNaNNaNNaN0.0NaNNaNNaN
1st to Die: A NovelNaNNaNNaNNaNNaNNaNNaNNaNNaN9.0...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
2nd ChanceNaN10.0NaNNaNNaNNaNNaNNaNNaN0.0...NaNNaNNaNNaNNaN0.0NaNNaN0.0NaN
4 BlondesNaNNaNNaNNaNNaNNaNNaN0.0NaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
A Bend in the Road0.0NaN7.0NaNNaNNaNNaNNaNNaNNaN...NaN0.0NaNNaNNaNNaNNaNNaNNaNNaN
..................................................................
Year of WondersNaNNaNNaN7.0NaNNaNNaNNaNNaN0.0...NaN9.0NaNNaNNaNNaN0.0NaNNaNNaN
You Belong To MeNaNNaNNaNNaNNaNNaNNaNNaN0.0NaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
Zen and the Art of Motorcycle Maintenance: An Inquiry into ValuesNaNNaNNaNNaN0.0NaNNaN0.0NaNNaN...NaNNaNNaNNaNNaNNaN0.0NaNNaNNaN
ZoyaNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaN0.0NaNNaNNaNNaNNaNNaNNaNNaN
\\O\\\" Is for Outlaw\"NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaN8.0NaNNaNNaNNaNNaN
\n", "

706 rows × 810 columns

\n", "
" ], "text/plain": [ "user_id 254 2276 2766 \\\n", "book_name \n", "1984 9.0 NaN NaN \n", "1st to Die: A Novel NaN NaN NaN \n", "2nd Chance NaN 10.0 NaN \n", "4 Blondes NaN NaN NaN \n", "A Bend in the Road 0.0 NaN 7.0 \n", "... ... ... ... \n", "Year of Wonders NaN NaN NaN \n", "You Belong To Me NaN NaN NaN \n", "Zen and the Art of Motorcycle Maintenance: An I... NaN NaN NaN \n", "Zoya NaN NaN NaN \n", "\\O\\\" Is for Outlaw\" NaN NaN NaN \n", "\n", "user_id 2977 3363 4017 \\\n", "book_name \n", "1984 NaN NaN NaN \n", "1st to Die: A Novel NaN NaN NaN \n", "2nd Chance NaN NaN NaN \n", "4 Blondes NaN NaN NaN \n", "A Bend in the Road NaN NaN NaN \n", "... ... ... ... \n", "Year of Wonders 7.0 NaN NaN \n", "You Belong To Me NaN NaN NaN \n", "Zen and the Art of Motorcycle Maintenance: An I... NaN 0.0 NaN \n", "Zoya NaN NaN NaN \n", "\\O\\\" Is for Outlaw\" NaN NaN NaN \n", "\n", "user_id 4385 6251 6323 \\\n", "book_name \n", "1984 NaN NaN NaN \n", "1st to Die: A Novel NaN NaN NaN \n", "2nd Chance NaN NaN NaN \n", "4 Blondes NaN 0.0 NaN \n", "A Bend in the Road NaN NaN NaN \n", "... ... ... ... \n", "Year of Wonders NaN NaN NaN \n", "You Belong To Me NaN NaN 0.0 \n", "Zen and the Art of Motorcycle Maintenance: An I... NaN 0.0 NaN \n", "Zoya NaN NaN NaN \n", "\\O\\\" Is for Outlaw\" NaN NaN NaN \n", "\n", "user_id 6543 ... 271705 \\\n", "book_name ... \n", "1984 NaN ... 10.0 \n", "1st to Die: A Novel 9.0 ... NaN \n", "2nd Chance 0.0 ... NaN \n", "4 Blondes NaN ... NaN \n", "A Bend in the Road NaN ... NaN \n", "... ... ... ... \n", "Year of Wonders 0.0 ... NaN \n", "You Belong To Me NaN ... NaN \n", "Zen and the Art of Motorcycle Maintenance: An I... NaN ... NaN \n", "Zoya NaN ... NaN \n", "\\O\\\" Is for Outlaw\" NaN ... NaN \n", "\n", "user_id 273979 274004 274061 \\\n", "book_name \n", "1984 NaN NaN NaN \n", "1st to Die: A Novel NaN NaN NaN \n", "2nd Chance NaN NaN NaN \n", "4 Blondes NaN NaN NaN \n", "A Bend in the Road 0.0 NaN NaN \n", "... ... ... ... \n", "Year of Wonders 9.0 NaN NaN \n", "You Belong To Me NaN NaN NaN \n", "Zen and the Art of Motorcycle Maintenance: An I... NaN NaN NaN \n", "Zoya 0.0 NaN NaN \n", "\\O\\\" Is for Outlaw\" NaN NaN NaN \n", "\n", "user_id 274301 274308 275970 \\\n", "book_name \n", "1984 NaN NaN 0.0 \n", "1st to Die: A Novel NaN NaN NaN \n", "2nd Chance NaN 0.0 NaN \n", "4 Blondes NaN NaN NaN \n", "A Bend in the Road NaN NaN NaN \n", "... ... ... ... \n", "Year of Wonders NaN NaN 0.0 \n", "You Belong To Me NaN NaN NaN \n", "Zen and the Art of Motorcycle Maintenance: An I... NaN NaN 0.0 \n", "Zoya NaN NaN NaN \n", "\\O\\\" Is for Outlaw\" 8.0 NaN NaN \n", "\n", "user_id 277427 277639 278418 \n", "book_name \n", "1984 NaN NaN NaN \n", "1st to Die: A Novel NaN NaN NaN \n", "2nd Chance NaN 0.0 NaN \n", "4 Blondes NaN NaN NaN \n", "A Bend in the Road NaN NaN NaN \n", "... ... ... ... \n", "Year of Wonders NaN NaN NaN \n", "You Belong To Me NaN NaN NaN \n", "Zen and the Art of Motorcycle Maintenance: An I... NaN NaN NaN \n", "Zoya NaN NaN NaN \n", "\\O\\\" Is for Outlaw\" NaN NaN NaN \n", "\n", "[706 rows x 810 columns]" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pt = df.pivot_table(\n", " index=\"book_name\",\n", " columns=\"user_id\",\n", " values=\"ratings\"\n", " )\n", "pt" ] }, { "cell_type": "code", "execution_count": 37, "id": "5606d6c1", "metadata": {}, "outputs": [], "source": [ "pt.fillna(0, inplace=True)" ] }, { "cell_type": "code", "execution_count": 38, "id": "0f248eb7", "metadata": {}, "outputs": [ { "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", " \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", " \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", " \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", "
user_id254227627662977336340174385625163236543...271705273979274004274061274301274308275970277427277639278418
book_name
19849.00.00.00.00.00.00.00.00.00.0...10.00.00.00.00.00.00.00.00.00.0
1st to Die: A Novel0.00.00.00.00.00.00.00.00.09.0...0.00.00.00.00.00.00.00.00.00.0
2nd Chance0.010.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
4 Blondes0.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
A Bend in the Road0.00.07.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
..................................................................
Year of Wonders0.00.00.07.00.00.00.00.00.00.0...0.09.00.00.00.00.00.00.00.00.0
You Belong To Me0.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
Zen and the Art of Motorcycle Maintenance: An Inquiry into Values0.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
Zoya0.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
\\O\\\" Is for Outlaw\"0.00.00.00.00.00.00.00.00.00.0...0.00.00.00.08.00.00.00.00.00.0
\n", "

706 rows × 810 columns

\n", "
" ], "text/plain": [ "user_id 254 2276 2766 \\\n", "book_name \n", "1984 9.0 0.0 0.0 \n", "1st to Die: A Novel 0.0 0.0 0.0 \n", "2nd Chance 0.0 10.0 0.0 \n", "4 Blondes 0.0 0.0 0.0 \n", "A Bend in the Road 0.0 0.0 7.0 \n", "... ... ... ... \n", "Year of Wonders 0.0 0.0 0.0 \n", "You Belong To Me 0.0 0.0 0.0 \n", "Zen and the Art of Motorcycle Maintenance: An I... 0.0 0.0 0.0 \n", "Zoya 0.0 0.0 0.0 \n", "\\O\\\" Is for Outlaw\" 0.0 0.0 0.0 \n", "\n", "user_id 2977 3363 4017 \\\n", "book_name \n", "1984 0.0 0.0 0.0 \n", "1st to Die: A Novel 0.0 0.0 0.0 \n", "2nd Chance 0.0 0.0 0.0 \n", "4 Blondes 0.0 0.0 0.0 \n", "A Bend in the Road 0.0 0.0 0.0 \n", "... ... ... ... \n", "Year of Wonders 7.0 0.0 0.0 \n", "You Belong To Me 0.0 0.0 0.0 \n", "Zen and the Art of Motorcycle Maintenance: An I... 0.0 0.0 0.0 \n", "Zoya 0.0 0.0 0.0 \n", "\\O\\\" Is for Outlaw\" 0.0 0.0 0.0 \n", "\n", "user_id 4385 6251 6323 \\\n", "book_name \n", "1984 0.0 0.0 0.0 \n", "1st to Die: A Novel 0.0 0.0 0.0 \n", "2nd Chance 0.0 0.0 0.0 \n", "4 Blondes 0.0 0.0 0.0 \n", "A Bend in the Road 0.0 0.0 0.0 \n", "... ... ... ... \n", "Year of Wonders 0.0 0.0 0.0 \n", "You Belong To Me 0.0 0.0 0.0 \n", "Zen and the Art of Motorcycle Maintenance: An I... 0.0 0.0 0.0 \n", "Zoya 0.0 0.0 0.0 \n", "\\O\\\" Is for Outlaw\" 0.0 0.0 0.0 \n", "\n", "user_id 6543 ... 271705 \\\n", "book_name ... \n", "1984 0.0 ... 10.0 \n", "1st to Die: A Novel 9.0 ... 0.0 \n", "2nd Chance 0.0 ... 0.0 \n", "4 Blondes 0.0 ... 0.0 \n", "A Bend in the Road 0.0 ... 0.0 \n", "... ... ... ... \n", "Year of Wonders 0.0 ... 0.0 \n", "You Belong To Me 0.0 ... 0.0 \n", "Zen and the Art of Motorcycle Maintenance: An I... 0.0 ... 0.0 \n", "Zoya 0.0 ... 0.0 \n", "\\O\\\" Is for Outlaw\" 0.0 ... 0.0 \n", "\n", "user_id 273979 274004 274061 \\\n", "book_name \n", "1984 0.0 0.0 0.0 \n", "1st to Die: A Novel 0.0 0.0 0.0 \n", "2nd Chance 0.0 0.0 0.0 \n", "4 Blondes 0.0 0.0 0.0 \n", "A Bend in the Road 0.0 0.0 0.0 \n", "... ... ... ... \n", "Year of Wonders 9.0 0.0 0.0 \n", "You Belong To Me 0.0 0.0 0.0 \n", "Zen and the Art of Motorcycle Maintenance: An I... 0.0 0.0 0.0 \n", "Zoya 0.0 0.0 0.0 \n", "\\O\\\" Is for Outlaw\" 0.0 0.0 0.0 \n", "\n", "user_id 274301 274308 275970 \\\n", "book_name \n", "1984 0.0 0.0 0.0 \n", "1st to Die: A Novel 0.0 0.0 0.0 \n", "2nd Chance 0.0 0.0 0.0 \n", "4 Blondes 0.0 0.0 0.0 \n", "A Bend in the Road 0.0 0.0 0.0 \n", "... ... ... ... \n", "Year of Wonders 0.0 0.0 0.0 \n", "You Belong To Me 0.0 0.0 0.0 \n", "Zen and the Art of Motorcycle Maintenance: An I... 0.0 0.0 0.0 \n", "Zoya 0.0 0.0 0.0 \n", "\\O\\\" Is for Outlaw\" 8.0 0.0 0.0 \n", "\n", "user_id 277427 277639 278418 \n", "book_name \n", "1984 0.0 0.0 0.0 \n", "1st to Die: A Novel 0.0 0.0 0.0 \n", "2nd Chance 0.0 0.0 0.0 \n", "4 Blondes 0.0 0.0 0.0 \n", "A Bend in the Road 0.0 0.0 0.0 \n", "... ... ... ... \n", "Year of Wonders 0.0 0.0 0.0 \n", "You Belong To Me 0.0 0.0 0.0 \n", "Zen and the Art of Motorcycle Maintenance: An I... 0.0 0.0 0.0 \n", "Zoya 0.0 0.0 0.0 \n", "\\O\\\" Is for Outlaw\" 0.0 0.0 0.0 \n", "\n", "[706 rows x 810 columns]" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pt" ] }, { "cell_type": "code", "execution_count": 39, "id": "fefd9494", "metadata": {}, "outputs": [], "source": [ "from sklearn.metrics.pairwise import cosine_similarity\n", "similarity = cosine_similarity(pt)" ] }, { "cell_type": "code", "execution_count": 40, "id": "2d063b39", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([1. , 0.10255025, 0.01220856, 0. , 0.05367224,\n", " 0.02774901, 0.08216491, 0.13732869, 0.03261686, 0.03667591,\n", " 0.02322418, 0.06766487, 0.02083978, 0.09673735, 0.13388865,\n", " 0.08303112, 0.11153543, 0.05100411, 0.02517784, 0.11706383,\n", " 0. , 0.14333793, 0.07847534, 0.06150451, 0.08723968,\n", " 0. , 0.07009814, 0.13658681, 0.07600328, 0.12167134,\n", " 0.00768046, 0.01473221, 0. , 0.07965814, 0.04522617,\n", " 0.01556271, 0.09495938, 0.0182307 , 0.02610465, 0.07984012,\n", " 0.11679969, 0.0569124 , 0.08354155, 0.08471898, 0.08785938,\n", " 0.05491435, 0.0548505 , 0.27026514, 0.09779123, 0.06016046,\n", " 0.08958835, 0.06748675, 0. , 0.04468098, 0.01920872,\n", " 0. , 0.05629067, 0.00557964, 0.07877059, 0.05219479,\n", " 0.18908177, 0. , 0.01240656, 0.02984572, 0.04279502,\n", " 0.12680125, 0.16566735, 0. , 0.13357242, 0.06615478,\n", " 0. , 0. , 0. , 0.10968075, 0.02806606,\n", " 0.04521795, 0.02613277, 0.06876131, 0.01331627, 0.10519138,\n", " 0.03349457, 0.01363458, 0.23669374, 0. , 0.10397941,\n", " 0.06167753, 0.14176273, 0.11661083, 0.08331012, 0.00850895,\n", " 0.06715433, 0. , 0.15850821, 0.0328052 , 0.01068915,\n", " 0.02579782, 0.02114859, 0.02687779, 0.02175821, 0. ,\n", " 0.01601663, 0.12114266, 0.04768603, 0.05819184, 0.06510722,\n", " 0. , 0.0476705 , 0.05273165, 0.0281001 , 0.06524573,\n", " 0.02116345, 0.02097868, 0.07422249, 0.01752778, 0.03734567,\n", " 0. , 0.01579666, 0.11039448, 0.16527277, 0.15514319,\n", " 0.06237454, 0.08139489, 0.05655414, 0.07458203, 0.03771888,\n", " 0.0593633 , 0.02955369, 0.03355603, 0.04734093, 0.01006643,\n", " 0.01671982, 0.07258935, 0. , 0. , 0. ,\n", " 0.02428501, 0.03067819, 0.0997498 , 0. , 0.01690152,\n", " 0.02410862, 0.0281084 , 0. , 0. , 0.01812877,\n", " 0.02880827, 0. , 0.05995157, 0.02127671, 0.1034119 ,\n", " 0.02766748, 0.10684795, 0.09898722, 0.14145186, 0.05007429,\n", " 0.09428289, 0.01411249, 0. , 0.07835976, 0.00882242,\n", " 0.04515898, 0. , 0.01281412, 0.04003334, 0.07477661,\n", " 0.01217906, 0.01887393, 0.02667484, 0.01432864, 0.14702847,\n", " 0.06087282, 0.02578321, 0.02741876, 0. , 0.14909595,\n", " 0.05606788, 0. , 0.03199916, 0.03643817, 0. ,\n", " 0.01962921, 0.22222254, 0.01515845, 0.09673268, 0.02190023,\n", " 0.02013549, 0.05400331, 0.07262017, 0.01111637, 0.03649872,\n", " 0.05994664, 0. , 0.14691167, 0.02086005, 0.10359635,\n", " 0.09794375, 0.06609997, 0.12871083, 0.08992739, 0.01147457,\n", " 0.02460165, 0. , 0.18049207, 0.05141892, 0.0477174 ,\n", " 0.10849696, 0.13278139, 0.05915288, 0.05372984, 0.034785 ,\n", " 0. , 0.09203039, 0.06388401, 0.04773328, 0.15570975,\n", " 0.08420691, 0.12338217, 0.0878469 , 0.08205945, 0.12177532,\n", " 0.02433703, 0.00272862, 0. , 0. , 0.03671505,\n", " 0.15280984, 0.0370943 , 0.07458136, 0.09746697, 0.05416091,\n", " 0.10266993, 0.07574414, 0.06426526, 0.0360174 , 0.01559752,\n", " 0.02033559, 0.02463593, 0. , 0.03349154, 0.02135369,\n", " 0.0190337 , 0.06806265, 0.02032116, 0.11784706, 0.07839488,\n", " 0.08422558, 0. , 0.02040796, 0. , 0.04698246,\n", " 0.08294513, 0.13974514, 0.01234525, 0.13510608, 0.07423489,\n", " 0.11841889, 0.04930091, 0.01621668, 0.02633023, 0.04815972,\n", " 0.01959826, 0.10174253, 0.13257638, 0. , 0.0551027 ,\n", " 0.0186115 , 0. , 0.04504598, 0.03482459, 0.16503292,\n", " 0.08466191, 0.06795353, 0.02987653, 0. , 0. ,\n", " 0.08781993, 0.07885279, 0.04799058, 0.01467964, 0.02123837,\n", " 0.04549923, 0.08673969, 0.00885998, 0.02880637, 0.02022145,\n", " 0.02414122, 0.12548312, 0. , 0.02482518, 0.06520606,\n", " 0. , 0.0606983 , 0.01177824, 0.13974105, 0.01978844,\n", " 0.01260824, 0.08608601, 0.04433883, 0.02943085, 0.02242496,\n", " 0.06541868, 0.07866868, 0.14281399, 0.11979305, 0.01858409,\n", " 0.13445377, 0.04809338, 0.09790644, 0. , 0.17415731,\n", " 0.07437756, 0. , 0.12389065, 0.01042391, 0.02580849,\n", " 0. , 0.0895139 , 0.04005551, 0.19182231, 0.02267512,\n", " 0.01730347, 0.03054044, 0.07008822, 0.10084626, 0.10467615,\n", " 0.01683462, 0.12468283, 0.10266459, 0.03549836, 0.02667484,\n", " 0.07652765, 0.08474056, 0.01831977, 0.02177482, 0.15293362,\n", " 0. , 0. , 0.01063251, 0.02153089, 0.02946443,\n", " 0. , 0.02076783, 0.01194825, 0.00953675, 0.2067554 ,\n", " 0.01554292, 0.0390266 , 0.06681046, 0.09014973, 0.05914735,\n", " 0.06206857, 0. , 0.02005959, 0.07843566, 0.16337845,\n", " 0.07161075, 0. , 0.14595258, 0.07561631, 0.02939738,\n", " 0.04779629, 0.01807238, 0.11362722, 0.09791273, 0.07999693,\n", " 0.08912337, 0.10941777, 0. , 0.02115842, 0.0600393 ,\n", " 0.01797154, 0.05755408, 0.02166863, 0.09754449, 0.13107652,\n", " 0. , 0.06829904, 0.09132922, 0. , 0.02781406,\n", " 0.01533368, 0.06113179, 0.01757286, 0.02471294, 0.0180158 ,\n", " 0.11789806, 0.06468143, 0.13904191, 0. , 0.06671644,\n", " 0. , 0. , 0.05762086, 0.02266096, 0.00844876,\n", " 0.02297481, 0.07136276, 0.15305514, 0.06039874, 0. ,\n", " 0.08996912, 0.01545947, 0.10135299, 0. , 0.01676344,\n", " 0. , 0.0502188 , 0.16041182, 0. , 0.13439733,\n", " 0.12508514, 0.02329035, 0.0198727 , 0.01105674, 0.02548034,\n", " 0.00896044, 0.08246122, 0.01902896, 0.07025003, 0.0216367 ,\n", " 0.12822982, 0.09998772, 0.08642895, 0.06355197, 0.02883024,\n", " 0.04335826, 0.0470659 , 0.05223733, 0. , 0.08982751,\n", " 0.00875634, 0.09923542, 0.10228551, 0. , 0.12307492,\n", " 0.01758929, 0.02028125, 0.1033827 , 0.13028171, 0.08988894,\n", " 0.09005001, 0.05332049, 0.08033436, 0.04597795, 0.06139888,\n", " 0.02300709, 0.02304904, 0.06523041, 0.01915363, 0. ,\n", " 0.04542766, 0. , 0. , 0.05261954, 0.01317088,\n", " 0. , 0. , 0.0485931 , 0.0734819 , 0.10354481,\n", " 0.01718807, 0.09919937, 0.08091989, 0.00358835, 0.04757132,\n", " 0.11122765, 0.05143481, 0.0566614 , 0. , 0.06087719,\n", " 0.10800615, 0. , 0.07554686, 0. , 0.13644384,\n", " 0.04796763, 0.16104067, 0. , 0.01759864, 0.05438295,\n", " 0. , 0.08100801, 0.13090711, 0.00581844, 0.07150547,\n", " 0.05428487, 0.06143184, 0.05161653, 0.1951182 , 0.1149488 ,\n", " 0.06513047, 0.06401961, 0. , 0. , 0.10853662,\n", " 0.11400426, 0.0463925 , 0.01825277, 0. , 0.01195201,\n", " 0.21057744, 0.05809707, 0.04349156, 0.02646256, 0.07276403,\n", " 0.05264857, 0.07242165, 0.06790898, 0.01626564, 0.02431809,\n", " 0.02093565, 0.13617057, 0.11784149, 0.08588206, 0.09284352,\n", " 0.11277297, 0.06868983, 0.08200947, 0.13369059, 0. ,\n", " 0.19972625, 0.02286207, 0.0806288 , 0. , 0.05756015,\n", " 0.06738056, 0. , 0.19656288, 0.06306426, 0.03499381,\n", " 0.06123119, 0.09596456, 0.02180168, 0.02317515, 0.06476149,\n", " 0.07052241, 0.08280452, 0.1700872 , 0.07213921, 0.01172201,\n", " 0.08541218, 0.17990898, 0.08007284, 0.01739625, 0.16728777,\n", " 0.26396194, 0.1840891 , 0.05600273, 0.04133586, 0.06911015,\n", " 0.14456847, 0.22626397, 0.19208896, 0.0239334 , 0.20025064,\n", " 0.01507653, 0.05144282, 0.1233368 , 0.1420166 , 0.02472079,\n", " 0.08563805, 0.02363426, 0.12794024, 0.01083153, 0.07352436,\n", " 0.09532519, 0.03421895, 0.07194212, 0.02297079, 0.15344079,\n", " 0.08856302, 0. , 0. , 0.01878656, 0.09772942,\n", " 0.04404359, 0.15211972, 0.0152225 , 0.10307399, 0.05715789,\n", " 0.04600056, 0.06303899, 0.06572303, 0.14421331, 0.08272478,\n", " 0. , 0.04203701, 0.02276077, 0.17381829, 0.01909967,\n", " 0.16000268, 0.14681486, 0. , 0.05940546, 0.07725115,\n", " 0.07464763, 0.06546696, 0.07021577, 0.18921368, 0.02494136,\n", " 0.01705027, 0.05437622, 0.04932819, 0. , 0.11445399,\n", " 0.08001595, 0.12858515, 0.02306658, 0.06129105, 0.02090769,\n", " 0.04550867, 0.1026659 , 0.10725982, 0.0260534 , 0.00173709,\n", " 0.0987294 , 0.08077482, 0.02159226, 0.01614275, 0.0208464 ,\n", " 0.09797466, 0.01906731, 0.18571699, 0.05344577, 0.18925314,\n", " 0.05894189, 0.01488161, 0.1202478 , 0.09840359, 0.01048126,\n", " 0.10596224, 0.07617195, 0.0805439 , 0. , 0.23299389,\n", " 0.01073642, 0.13573542, 0.04578552, 0.14440017, 0. ,\n", " 0.12522954, 0.0645501 , 0.02817522, 0.14445559, 0.01721045,\n", " 0.09508161, 0.0517902 , 0.18410818, 0.08704224, 0.10990764,\n", " 0.10850377, 0.03954865, 0.0383631 , 0.02463491, 0.07845405,\n", " 0.03455548, 0.03007681, 0.02484076, 0.04223674, 0.14444517,\n", " 0.12340234, 0.01510201, 0.0284437 , 0.02132016, 0.07391778,\n", " 0.08904276, 0.15893871, 0.06947574, 0.01060787, 0. ,\n", " 0.09993169, 0.05711356, 0.09488374, 0.00948943, 0.13365876,\n", " 0.05794064, 0. , 0.06721284, 0.02066998, 0. ,\n", " 0.01839428, 0. , 0.12655364, 0.08418288, 0.09095705,\n", " 0.00730589, 0.08143881, 0. , 0.04218803, 0.08392849,\n", " 0.07785801, 0. , 0.07151794, 0.02407593, 0.01635126,\n", " 0.03734567, 0.05237227, 0.01140169, 0.00968725, 0.12530648,\n", " 0.00909905, 0.05864096, 0.01769644, 0.12110367, 0.07347567,\n", " 0.04316046])" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "similarity[0]" ] }, { "cell_type": "markdown", "id": "859f4df8", "metadata": {}, "source": [ "#### Fetch the index of the book" ] }, { "cell_type": "code", "execution_count": 41, "id": "b119ac67", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, False,\n", " False, False, False, False, False, False, False, False, True,\n", " False, False, False, False])" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pt.index == \"Year of Wonders\"" ] }, { "cell_type": "code", "execution_count": 42, "id": "534fb6fd", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(array([701]),)" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.where(pt.index == \"Year of Wonders\")" ] }, { "cell_type": "code", "execution_count": 43, "id": "d9cc21c2", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([701])" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.where(pt.index == \"Year of Wonders\")[0]" ] }, { "cell_type": "code", "execution_count": 44, "id": "2952a52a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "np.int64(701)" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.where(pt.index == \"Year of Wonders\")[0][0]" ] }, { "cell_type": "code", "execution_count": 45, "id": "e6a5bdde", "metadata": {}, "outputs": [], "source": [ "def dummy1(book_name):\n", " # fetch index of the book_name\n", " book_index = np.where(pt.index == book_name)[0][0]\n", " return book_index" ] }, { "cell_type": "code", "execution_count": 46, "id": "16ca568b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "np.int64(2)" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dummy1(\"2nd Chance\")" ] }, { "cell_type": "markdown", "id": "8e499a5e", "metadata": {}, "source": [ "#### Fetch similar ites of the book" ] }, { "cell_type": "code", "execution_count": 47, "id": "a3c9c48b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([1. , 0.10255025, 0.01220856, 0. , 0.05367224,\n", " 0.02774901, 0.08216491, 0.13732869, 0.03261686, 0.03667591,\n", " 0.02322418, 0.06766487, 0.02083978, 0.09673735, 0.13388865,\n", " 0.08303112, 0.11153543, 0.05100411, 0.02517784, 0.11706383,\n", " 0. , 0.14333793, 0.07847534, 0.06150451, 0.08723968,\n", " 0. , 0.07009814, 0.13658681, 0.07600328, 0.12167134,\n", " 0.00768046, 0.01473221, 0. , 0.07965814, 0.04522617,\n", " 0.01556271, 0.09495938, 0.0182307 , 0.02610465, 0.07984012,\n", " 0.11679969, 0.0569124 , 0.08354155, 0.08471898, 0.08785938,\n", " 0.05491435, 0.0548505 , 0.27026514, 0.09779123, 0.06016046,\n", " 0.08958835, 0.06748675, 0. , 0.04468098, 0.01920872,\n", " 0. , 0.05629067, 0.00557964, 0.07877059, 0.05219479,\n", " 0.18908177, 0. , 0.01240656, 0.02984572, 0.04279502,\n", " 0.12680125, 0.16566735, 0. , 0.13357242, 0.06615478,\n", " 0. , 0. , 0. , 0.10968075, 0.02806606,\n", " 0.04521795, 0.02613277, 0.06876131, 0.01331627, 0.10519138,\n", " 0.03349457, 0.01363458, 0.23669374, 0. , 0.10397941,\n", " 0.06167753, 0.14176273, 0.11661083, 0.08331012, 0.00850895,\n", " 0.06715433, 0. , 0.15850821, 0.0328052 , 0.01068915,\n", " 0.02579782, 0.02114859, 0.02687779, 0.02175821, 0. ,\n", " 0.01601663, 0.12114266, 0.04768603, 0.05819184, 0.06510722,\n", " 0. , 0.0476705 , 0.05273165, 0.0281001 , 0.06524573,\n", " 0.02116345, 0.02097868, 0.07422249, 0.01752778, 0.03734567,\n", " 0. , 0.01579666, 0.11039448, 0.16527277, 0.15514319,\n", " 0.06237454, 0.08139489, 0.05655414, 0.07458203, 0.03771888,\n", " 0.0593633 , 0.02955369, 0.03355603, 0.04734093, 0.01006643,\n", " 0.01671982, 0.07258935, 0. , 0. , 0. ,\n", " 0.02428501, 0.03067819, 0.0997498 , 0. , 0.01690152,\n", " 0.02410862, 0.0281084 , 0. , 0. , 0.01812877,\n", " 0.02880827, 0. , 0.05995157, 0.02127671, 0.1034119 ,\n", " 0.02766748, 0.10684795, 0.09898722, 0.14145186, 0.05007429,\n", " 0.09428289, 0.01411249, 0. , 0.07835976, 0.00882242,\n", " 0.04515898, 0. , 0.01281412, 0.04003334, 0.07477661,\n", " 0.01217906, 0.01887393, 0.02667484, 0.01432864, 0.14702847,\n", " 0.06087282, 0.02578321, 0.02741876, 0. , 0.14909595,\n", " 0.05606788, 0. , 0.03199916, 0.03643817, 0. ,\n", " 0.01962921, 0.22222254, 0.01515845, 0.09673268, 0.02190023,\n", " 0.02013549, 0.05400331, 0.07262017, 0.01111637, 0.03649872,\n", " 0.05994664, 0. , 0.14691167, 0.02086005, 0.10359635,\n", " 0.09794375, 0.06609997, 0.12871083, 0.08992739, 0.01147457,\n", " 0.02460165, 0. , 0.18049207, 0.05141892, 0.0477174 ,\n", " 0.10849696, 0.13278139, 0.05915288, 0.05372984, 0.034785 ,\n", " 0. , 0.09203039, 0.06388401, 0.04773328, 0.15570975,\n", " 0.08420691, 0.12338217, 0.0878469 , 0.08205945, 0.12177532,\n", " 0.02433703, 0.00272862, 0. , 0. , 0.03671505,\n", " 0.15280984, 0.0370943 , 0.07458136, 0.09746697, 0.05416091,\n", " 0.10266993, 0.07574414, 0.06426526, 0.0360174 , 0.01559752,\n", " 0.02033559, 0.02463593, 0. , 0.03349154, 0.02135369,\n", " 0.0190337 , 0.06806265, 0.02032116, 0.11784706, 0.07839488,\n", " 0.08422558, 0. , 0.02040796, 0. , 0.04698246,\n", " 0.08294513, 0.13974514, 0.01234525, 0.13510608, 0.07423489,\n", " 0.11841889, 0.04930091, 0.01621668, 0.02633023, 0.04815972,\n", " 0.01959826, 0.10174253, 0.13257638, 0. , 0.0551027 ,\n", " 0.0186115 , 0. , 0.04504598, 0.03482459, 0.16503292,\n", " 0.08466191, 0.06795353, 0.02987653, 0. , 0. ,\n", " 0.08781993, 0.07885279, 0.04799058, 0.01467964, 0.02123837,\n", " 0.04549923, 0.08673969, 0.00885998, 0.02880637, 0.02022145,\n", " 0.02414122, 0.12548312, 0. , 0.02482518, 0.06520606,\n", " 0. , 0.0606983 , 0.01177824, 0.13974105, 0.01978844,\n", " 0.01260824, 0.08608601, 0.04433883, 0.02943085, 0.02242496,\n", " 0.06541868, 0.07866868, 0.14281399, 0.11979305, 0.01858409,\n", " 0.13445377, 0.04809338, 0.09790644, 0. , 0.17415731,\n", " 0.07437756, 0. , 0.12389065, 0.01042391, 0.02580849,\n", " 0. , 0.0895139 , 0.04005551, 0.19182231, 0.02267512,\n", " 0.01730347, 0.03054044, 0.07008822, 0.10084626, 0.10467615,\n", " 0.01683462, 0.12468283, 0.10266459, 0.03549836, 0.02667484,\n", " 0.07652765, 0.08474056, 0.01831977, 0.02177482, 0.15293362,\n", " 0. , 0. , 0.01063251, 0.02153089, 0.02946443,\n", " 0. , 0.02076783, 0.01194825, 0.00953675, 0.2067554 ,\n", " 0.01554292, 0.0390266 , 0.06681046, 0.09014973, 0.05914735,\n", " 0.06206857, 0. , 0.02005959, 0.07843566, 0.16337845,\n", " 0.07161075, 0. , 0.14595258, 0.07561631, 0.02939738,\n", " 0.04779629, 0.01807238, 0.11362722, 0.09791273, 0.07999693,\n", " 0.08912337, 0.10941777, 0. , 0.02115842, 0.0600393 ,\n", " 0.01797154, 0.05755408, 0.02166863, 0.09754449, 0.13107652,\n", " 0. , 0.06829904, 0.09132922, 0. , 0.02781406,\n", " 0.01533368, 0.06113179, 0.01757286, 0.02471294, 0.0180158 ,\n", " 0.11789806, 0.06468143, 0.13904191, 0. , 0.06671644,\n", " 0. , 0. , 0.05762086, 0.02266096, 0.00844876,\n", " 0.02297481, 0.07136276, 0.15305514, 0.06039874, 0. ,\n", " 0.08996912, 0.01545947, 0.10135299, 0. , 0.01676344,\n", " 0. , 0.0502188 , 0.16041182, 0. , 0.13439733,\n", " 0.12508514, 0.02329035, 0.0198727 , 0.01105674, 0.02548034,\n", " 0.00896044, 0.08246122, 0.01902896, 0.07025003, 0.0216367 ,\n", " 0.12822982, 0.09998772, 0.08642895, 0.06355197, 0.02883024,\n", " 0.04335826, 0.0470659 , 0.05223733, 0. , 0.08982751,\n", " 0.00875634, 0.09923542, 0.10228551, 0. , 0.12307492,\n", " 0.01758929, 0.02028125, 0.1033827 , 0.13028171, 0.08988894,\n", " 0.09005001, 0.05332049, 0.08033436, 0.04597795, 0.06139888,\n", " 0.02300709, 0.02304904, 0.06523041, 0.01915363, 0. ,\n", " 0.04542766, 0. , 0. , 0.05261954, 0.01317088,\n", " 0. , 0. , 0.0485931 , 0.0734819 , 0.10354481,\n", " 0.01718807, 0.09919937, 0.08091989, 0.00358835, 0.04757132,\n", " 0.11122765, 0.05143481, 0.0566614 , 0. , 0.06087719,\n", " 0.10800615, 0. , 0.07554686, 0. , 0.13644384,\n", " 0.04796763, 0.16104067, 0. , 0.01759864, 0.05438295,\n", " 0. , 0.08100801, 0.13090711, 0.00581844, 0.07150547,\n", " 0.05428487, 0.06143184, 0.05161653, 0.1951182 , 0.1149488 ,\n", " 0.06513047, 0.06401961, 0. , 0. , 0.10853662,\n", " 0.11400426, 0.0463925 , 0.01825277, 0. , 0.01195201,\n", " 0.21057744, 0.05809707, 0.04349156, 0.02646256, 0.07276403,\n", " 0.05264857, 0.07242165, 0.06790898, 0.01626564, 0.02431809,\n", " 0.02093565, 0.13617057, 0.11784149, 0.08588206, 0.09284352,\n", " 0.11277297, 0.06868983, 0.08200947, 0.13369059, 0. ,\n", " 0.19972625, 0.02286207, 0.0806288 , 0. , 0.05756015,\n", " 0.06738056, 0. , 0.19656288, 0.06306426, 0.03499381,\n", " 0.06123119, 0.09596456, 0.02180168, 0.02317515, 0.06476149,\n", " 0.07052241, 0.08280452, 0.1700872 , 0.07213921, 0.01172201,\n", " 0.08541218, 0.17990898, 0.08007284, 0.01739625, 0.16728777,\n", " 0.26396194, 0.1840891 , 0.05600273, 0.04133586, 0.06911015,\n", " 0.14456847, 0.22626397, 0.19208896, 0.0239334 , 0.20025064,\n", " 0.01507653, 0.05144282, 0.1233368 , 0.1420166 , 0.02472079,\n", " 0.08563805, 0.02363426, 0.12794024, 0.01083153, 0.07352436,\n", " 0.09532519, 0.03421895, 0.07194212, 0.02297079, 0.15344079,\n", " 0.08856302, 0. , 0. , 0.01878656, 0.09772942,\n", " 0.04404359, 0.15211972, 0.0152225 , 0.10307399, 0.05715789,\n", " 0.04600056, 0.06303899, 0.06572303, 0.14421331, 0.08272478,\n", " 0. , 0.04203701, 0.02276077, 0.17381829, 0.01909967,\n", " 0.16000268, 0.14681486, 0. , 0.05940546, 0.07725115,\n", " 0.07464763, 0.06546696, 0.07021577, 0.18921368, 0.02494136,\n", " 0.01705027, 0.05437622, 0.04932819, 0. , 0.11445399,\n", " 0.08001595, 0.12858515, 0.02306658, 0.06129105, 0.02090769,\n", " 0.04550867, 0.1026659 , 0.10725982, 0.0260534 , 0.00173709,\n", " 0.0987294 , 0.08077482, 0.02159226, 0.01614275, 0.0208464 ,\n", " 0.09797466, 0.01906731, 0.18571699, 0.05344577, 0.18925314,\n", " 0.05894189, 0.01488161, 0.1202478 , 0.09840359, 0.01048126,\n", " 0.10596224, 0.07617195, 0.0805439 , 0. , 0.23299389,\n", " 0.01073642, 0.13573542, 0.04578552, 0.14440017, 0. ,\n", " 0.12522954, 0.0645501 , 0.02817522, 0.14445559, 0.01721045,\n", " 0.09508161, 0.0517902 , 0.18410818, 0.08704224, 0.10990764,\n", " 0.10850377, 0.03954865, 0.0383631 , 0.02463491, 0.07845405,\n", " 0.03455548, 0.03007681, 0.02484076, 0.04223674, 0.14444517,\n", " 0.12340234, 0.01510201, 0.0284437 , 0.02132016, 0.07391778,\n", " 0.08904276, 0.15893871, 0.06947574, 0.01060787, 0. ,\n", " 0.09993169, 0.05711356, 0.09488374, 0.00948943, 0.13365876,\n", " 0.05794064, 0. , 0.06721284, 0.02066998, 0. ,\n", " 0.01839428, 0. , 0.12655364, 0.08418288, 0.09095705,\n", " 0.00730589, 0.08143881, 0. , 0.04218803, 0.08392849,\n", " 0.07785801, 0. , 0.07151794, 0.02407593, 0.01635126,\n", " 0.03734567, 0.05237227, 0.01140169, 0.00968725, 0.12530648,\n", " 0.00909905, 0.05864096, 0.01769644, 0.12110367, 0.07347567,\n", " 0.04316046])" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "similarity[0]" ] }, { "cell_type": "code", "execution_count": 48, "id": "4c66a99b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "enumerate(similarity[0])" ] }, { "cell_type": "code", "execution_count": 49, "id": "5eec9940", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[(0, np.float64(0.9999999999999998)),\n", " (1, np.float64(0.10255024829874466)),\n", " (2, np.float64(0.012208555646509366)),\n", " (3, np.float64(0.0)),\n", " (4, np.float64(0.053672244225442485)),\n", " (5, np.float64(0.027749013024662858)),\n", " (6, np.float64(0.08216491130000354)),\n", " (7, np.float64(0.13732869060263378)),\n", " (8, np.float64(0.03261686350494277)),\n", " (9, np.float64(0.03667590746512177)),\n", " (10, np.float64(0.02322418425912186)),\n", " (11, np.float64(0.06766486753662343)),\n", " (12, np.float64(0.020839782065795794)),\n", " (13, np.float64(0.09673734976610586)),\n", " (14, np.float64(0.13388864701187034)),\n", " (15, np.float64(0.0830311169181103)),\n", " (16, np.float64(0.1115354275858341)),\n", " (17, np.float64(0.05100410510067514)),\n", " (18, np.float64(0.025177841632809915)),\n", " (19, np.float64(0.11706383185253948)),\n", " (20, np.float64(0.0)),\n", " (21, np.float64(0.14333792815336935)),\n", " (22, np.float64(0.07847534327232125)),\n", " (23, np.float64(0.06150451339525138)),\n", " (24, np.float64(0.08723968326958673)),\n", " (25, np.float64(0.0)),\n", " (26, np.float64(0.07009814362931202)),\n", " (27, np.float64(0.13658680855472938)),\n", " (28, np.float64(0.07600327535501017)),\n", " (29, np.float64(0.12167133598776536)),\n", " (30, np.float64(0.007680459111722776)),\n", " (31, np.float64(0.01473221255132234)),\n", " (32, np.float64(0.0)),\n", " (33, np.float64(0.07965814289647455)),\n", " (34, np.float64(0.04522616573040869)),\n", " (35, np.float64(0.01556270914112474)),\n", " (36, np.float64(0.09495937740802216)),\n", " (37, np.float64(0.018230696811058135)),\n", " (38, np.float64(0.026104653172312028)),\n", " (39, np.float64(0.07984012108659384)),\n", " (40, np.float64(0.11679968613719668)),\n", " (41, np.float64(0.056912401804646934)),\n", " (42, np.float64(0.08354155383339157)),\n", " (43, np.float64(0.08471898090442946)),\n", " (44, np.float64(0.08785938150991274)),\n", " (45, np.float64(0.05491435163039676)),\n", " (46, np.float64(0.054850498513470236)),\n", " (47, np.float64(0.2702651417103732)),\n", " (48, np.float64(0.09779122591837028)),\n", " (49, np.float64(0.060160461842087495)),\n", " (50, np.float64(0.08958834926611466)),\n", " (51, np.float64(0.06748675491514017)),\n", " (52, np.float64(0.0)),\n", " (53, np.float64(0.044680983219421905)),\n", " (54, np.float64(0.019208718234636258)),\n", " (55, np.float64(0.0)),\n", " (56, np.float64(0.05629066845910846)),\n", " (57, np.float64(0.005579638588454276)),\n", " (58, np.float64(0.07877058635507732)),\n", " (59, np.float64(0.052194792200893965)),\n", " (60, np.float64(0.18908176672188648)),\n", " (61, np.float64(0.0)),\n", " (62, np.float64(0.012406560213354146)),\n", " (63, np.float64(0.029845724311982225)),\n", " (64, np.float64(0.04279501979786338)),\n", " (65, np.float64(0.12680124740531368)),\n", " (66, np.float64(0.16566734565340116)),\n", " (67, np.float64(0.0)),\n", " (68, np.float64(0.13357242093379193)),\n", " (69, np.float64(0.06615478064452682)),\n", " (70, np.float64(0.0)),\n", " (71, np.float64(0.0)),\n", " (72, np.float64(0.0)),\n", " (73, np.float64(0.1096807501418389)),\n", " (74, np.float64(0.02806606106883051)),\n", " (75, np.float64(0.04521795287053612)),\n", " (76, np.float64(0.02613276804655889)),\n", " (77, np.float64(0.06876130890656589)),\n", " (78, np.float64(0.013316271087745269)),\n", " (79, np.float64(0.10519138203342883)),\n", " (80, np.float64(0.03349456939792139)),\n", " (81, np.float64(0.013634576553468258)),\n", " (82, np.float64(0.23669374347400993)),\n", " (83, np.float64(0.0)),\n", " (84, np.float64(0.10397940924207362)),\n", " (85, np.float64(0.06167753120046458)),\n", " (86, np.float64(0.1417627291694863)),\n", " (87, np.float64(0.11661082872914152)),\n", " (88, np.float64(0.08331012208964667)),\n", " (89, np.float64(0.00850895140653615)),\n", " (90, np.float64(0.06715432766232284)),\n", " (91, np.float64(0.0)),\n", " (92, np.float64(0.15850821182810643)),\n", " (93, np.float64(0.03280520241000348)),\n", " (94, np.float64(0.010689154840164533)),\n", " (95, np.float64(0.025797824097510556)),\n", " (96, np.float64(0.02114858980511902)),\n", " (97, np.float64(0.02687778911799567)),\n", " (98, np.float64(0.02175821065382328)),\n", " (99, np.float64(0.0)),\n", " (100, np.float64(0.016016629607635186)),\n", " (101, np.float64(0.12114265984279052)),\n", " (102, np.float64(0.04768602689229997)),\n", " (103, np.float64(0.058191840680734276)),\n", " (104, np.float64(0.06510721558252526)),\n", " (105, np.float64(0.0)),\n", " (106, np.float64(0.047670497142785574)),\n", " (107, np.float64(0.05273164983675109)),\n", " (108, np.float64(0.02810009706063171)),\n", " (109, np.float64(0.06524573363186935)),\n", " (110, np.float64(0.021163446843373374)),\n", " (111, np.float64(0.02097867986921867)),\n", " (112, np.float64(0.07422249010392888)),\n", " (113, np.float64(0.017527779718968118)),\n", " (114, np.float64(0.03734566872286401)),\n", " (115, np.float64(0.0)),\n", " (116, np.float64(0.01579666260459111)),\n", " (117, np.float64(0.1103944810687539)),\n", " (118, np.float64(0.165272766123669)),\n", " (119, np.float64(0.15514318804365945)),\n", " (120, np.float64(0.06237453600241552)),\n", " (121, np.float64(0.08139488796880032)),\n", " (122, np.float64(0.056554138733275305)),\n", " (123, np.float64(0.07458202717929566)),\n", " (124, np.float64(0.03771888280719047)),\n", " (125, np.float64(0.059363300295016304)),\n", " (126, np.float64(0.02955369248311012)),\n", " (127, np.float64(0.03355602562283)),\n", " (128, np.float64(0.04734092759216691)),\n", " (129, np.float64(0.010066425112509755)),\n", " (130, np.float64(0.016719816747289874)),\n", " (131, np.float64(0.07258934796997447)),\n", " (132, np.float64(0.0)),\n", " (133, np.float64(0.0)),\n", " (134, np.float64(0.0)),\n", " (135, np.float64(0.02428501142412964)),\n", " (136, np.float64(0.030678189040978528)),\n", " (137, np.float64(0.09974980034668827)),\n", " (138, np.float64(0.0)),\n", " (139, np.float64(0.016901518597837405)),\n", " (140, np.float64(0.024108621631248803)),\n", " (141, np.float64(0.028108399645259814)),\n", " (142, np.float64(0.0)),\n", " (143, np.float64(0.0)),\n", " (144, np.float64(0.0181287703514146)),\n", " (145, np.float64(0.028808272598853126)),\n", " (146, np.float64(0.0)),\n", " (147, np.float64(0.05995157134958024)),\n", " (148, np.float64(0.021276714965680187)),\n", " (149, np.float64(0.10341190148072846)),\n", " (150, np.float64(0.027667475691473428)),\n", " (151, np.float64(0.10684794535545848)),\n", " (152, np.float64(0.09898722239993361)),\n", " (153, np.float64(0.14145186155692357)),\n", " (154, np.float64(0.05007429159938883)),\n", " (155, np.float64(0.09428288870384942)),\n", " (156, np.float64(0.014112489355409683)),\n", " (157, np.float64(0.0)),\n", " (158, np.float64(0.07835976130061303)),\n", " (159, np.float64(0.00882242400686552)),\n", " (160, np.float64(0.04515898041752436)),\n", " (161, np.float64(0.0)),\n", " (162, np.float64(0.012814117802391826)),\n", " (163, np.float64(0.04003333547158616)),\n", " (164, np.float64(0.07477661367406771)),\n", " (165, np.float64(0.012179056920074677)),\n", " (166, np.float64(0.018873932015163516)),\n", " (167, np.float64(0.026674838717939867)),\n", " (168, np.float64(0.01432863977616057)),\n", " (169, np.float64(0.14702846562277322)),\n", " (170, np.float64(0.06087281632872059)),\n", " (171, np.float64(0.025783211586063344)),\n", " (172, np.float64(0.027418756526771074)),\n", " (173, np.float64(0.0)),\n", " (174, np.float64(0.14909595195082756)),\n", " (175, np.float64(0.05606788035530558)),\n", " (176, np.float64(0.0)),\n", " (177, np.float64(0.03199916313406436)),\n", " (178, np.float64(0.03643816906953526)),\n", " (179, np.float64(0.0)),\n", " (180, np.float64(0.01962921144060071)),\n", " (181, np.float64(0.22222254415660225)),\n", " (182, np.float64(0.015158449197584845)),\n", " (183, np.float64(0.09673267751838878)),\n", " (184, np.float64(0.02190023295408395)),\n", " (185, np.float64(0.020135489410098205)),\n", " (186, np.float64(0.05400331245399732)),\n", " (187, np.float64(0.07262017448772083)),\n", " (188, np.float64(0.011116365315772406)),\n", " (189, np.float64(0.036498718026030004)),\n", " (190, np.float64(0.05994663767295999)),\n", " (191, np.float64(0.0)),\n", " (192, np.float64(0.14691166711955864)),\n", " (193, np.float64(0.020860053643757807)),\n", " (194, np.float64(0.1035963528100001)),\n", " (195, np.float64(0.09794374510256892)),\n", " (196, np.float64(0.06609996896203728)),\n", " (197, np.float64(0.12871083086643306)),\n", " (198, np.float64(0.08992738703666601)),\n", " (199, np.float64(0.011474570339750256)),\n", " (200, np.float64(0.024601653277066596)),\n", " (201, np.float64(0.0)),\n", " (202, np.float64(0.18049207281616433)),\n", " (203, np.float64(0.05141892092902459)),\n", " (204, np.float64(0.047717402129725514)),\n", " (205, np.float64(0.10849696385128585)),\n", " (206, np.float64(0.1327813903167589)),\n", " (207, np.float64(0.059152881703632795)),\n", " (208, np.float64(0.053729841666378134)),\n", " (209, np.float64(0.034785003361519164)),\n", " (210, np.float64(0.0)),\n", " (211, np.float64(0.09203038690315052)),\n", " (212, np.float64(0.06388401351716998)),\n", " (213, np.float64(0.04773328410790857)),\n", " (214, np.float64(0.15570975499937129)),\n", " (215, np.float64(0.08420691059370962)),\n", " (216, np.float64(0.12338216998991305)),\n", " (217, np.float64(0.08784690368235953)),\n", " (218, np.float64(0.08205944603394638)),\n", " (219, np.float64(0.12177532243608828)),\n", " (220, np.float64(0.024337026385897676)),\n", " (221, np.float64(0.00272862336930817)),\n", " (222, np.float64(0.0)),\n", " (223, np.float64(0.0)),\n", " (224, np.float64(0.03671505063990275)),\n", " (225, np.float64(0.1528098402276361)),\n", " (226, np.float64(0.03709430441334803)),\n", " (227, np.float64(0.07458136399603107)),\n", " (228, np.float64(0.09746696979819942)),\n", " (229, np.float64(0.05416091103251691)),\n", " (230, np.float64(0.10266993316420167)),\n", " (231, np.float64(0.0757441443938586)),\n", " (232, np.float64(0.06426525769208898)),\n", " (233, np.float64(0.03601739518550193)),\n", " (234, np.float64(0.01559751952620105)),\n", " (235, np.float64(0.02033558874805688)),\n", " (236, np.float64(0.024635927968282654)),\n", " (237, np.float64(0.0)),\n", " (238, np.float64(0.03349154464789058)),\n", " (239, np.float64(0.021353685011361416)),\n", " (240, np.float64(0.019033695446023926)),\n", " (241, np.float64(0.06806264765162154)),\n", " (242, np.float64(0.020321161226731627)),\n", " (243, np.float64(0.11784705785247843)),\n", " (244, np.float64(0.07839488163675291)),\n", " (245, np.float64(0.08422557655984436)),\n", " (246, np.float64(0.0)),\n", " (247, np.float64(0.02040796206066411)),\n", " (248, np.float64(0.0)),\n", " (249, np.float64(0.046982457315643385)),\n", " (250, np.float64(0.08294512991462386)),\n", " (251, np.float64(0.13974513728492968)),\n", " (252, np.float64(0.012345246102533871)),\n", " (253, np.float64(0.1351060763800879)),\n", " (254, np.float64(0.07423488726781508)),\n", " (255, np.float64(0.1184188929166314)),\n", " (256, np.float64(0.049300912125160704)),\n", " (257, np.float64(0.016216682151444957)),\n", " (258, np.float64(0.026330228561191004)),\n", " (259, np.float64(0.04815971759587031)),\n", " (260, np.float64(0.019598256153707194)),\n", " (261, np.float64(0.10174252819190155)),\n", " (262, np.float64(0.13257638388225185)),\n", " (263, np.float64(0.0)),\n", " (264, np.float64(0.055102704646119355)),\n", " (265, np.float64(0.018611497829688243)),\n", " (266, np.float64(0.0)),\n", " (267, np.float64(0.04504597870526374)),\n", " (268, np.float64(0.03482458685305275)),\n", " (269, np.float64(0.1650329228149958)),\n", " (270, np.float64(0.08466191294337998)),\n", " (271, np.float64(0.06795352889900172)),\n", " (272, np.float64(0.029876534978291205)),\n", " (273, np.float64(0.0)),\n", " (274, np.float64(0.0)),\n", " (275, np.float64(0.08781992709390865)),\n", " (276, np.float64(0.07885279086963545)),\n", " (277, np.float64(0.04799058127298857)),\n", " (278, np.float64(0.014679640011206505)),\n", " (279, np.float64(0.021238372796229556)),\n", " (280, np.float64(0.04549923467689111)),\n", " (281, np.float64(0.08673968616705958)),\n", " (282, np.float64(0.00885998445194921)),\n", " (283, np.float64(0.028806369616477166)),\n", " (284, np.float64(0.020221447157344582)),\n", " (285, np.float64(0.024141217209915328)),\n", " (286, np.float64(0.12548312467838352)),\n", " (287, np.float64(0.0)),\n", " (288, np.float64(0.02482518222135733)),\n", " (289, np.float64(0.06520605980064662)),\n", " (290, np.float64(0.0)),\n", " (291, np.float64(0.06069830203664196)),\n", " (292, np.float64(0.011778242975805127)),\n", " (293, np.float64(0.13974104783917973)),\n", " (294, np.float64(0.019788442258843547)),\n", " (295, np.float64(0.012608239194211564)),\n", " (296, np.float64(0.08608600626732467)),\n", " (297, np.float64(0.04433882752568145)),\n", " (298, np.float64(0.029430847399312027)),\n", " (299, np.float64(0.022424955017243866)),\n", " (300, np.float64(0.06541867556977009)),\n", " (301, np.float64(0.07866868132289853)),\n", " (302, np.float64(0.1428139852200272)),\n", " (303, np.float64(0.11979305199464946)),\n", " (304, np.float64(0.01858409288796079)),\n", " (305, np.float64(0.13445376799866068)),\n", " (306, np.float64(0.04809338200514574)),\n", " (307, np.float64(0.09790644477767069)),\n", " (308, np.float64(0.0)),\n", " (309, np.float64(0.17415730924332484)),\n", " (310, np.float64(0.07437756212042423)),\n", " (311, np.float64(0.0)),\n", " (312, np.float64(0.1238906533021012)),\n", " (313, np.float64(0.010423913217045038)),\n", " (314, np.float64(0.025808491020821493)),\n", " (315, np.float64(0.0)),\n", " (316, np.float64(0.08951389572154368)),\n", " (317, np.float64(0.04005551020725377)),\n", " (318, np.float64(0.19182230688281934)),\n", " (319, np.float64(0.02267512161790004)),\n", " (320, np.float64(0.017303468493582226)),\n", " (321, np.float64(0.03054044240047009)),\n", " (322, np.float64(0.0700882246357741)),\n", " (323, np.float64(0.10084626149563478)),\n", " (324, np.float64(0.10467615354986062)),\n", " (325, np.float64(0.016834621675675482)),\n", " (326, np.float64(0.12468283384023092)),\n", " (327, np.float64(0.10266459423639845)),\n", " (328, np.float64(0.035498355256648746)),\n", " (329, np.float64(0.026674838717939867)),\n", " (330, np.float64(0.07652764821891074)),\n", " (331, np.float64(0.08474055728984814)),\n", " (332, np.float64(0.018319772326554337)),\n", " (333, np.float64(0.021774817728178283)),\n", " (334, np.float64(0.15293362041446346)),\n", " (335, np.float64(0.0)),\n", " (336, np.float64(0.0)),\n", " (337, np.float64(0.010632508151830204)),\n", " (338, np.float64(0.021530886296301118)),\n", " (339, np.float64(0.02946442510264468)),\n", " (340, np.float64(0.0)),\n", " (341, np.float64(0.020767833514212724)),\n", " (342, np.float64(0.011948245768325256)),\n", " (343, np.float64(0.009536746594659161)),\n", " (344, np.float64(0.20675540390453995)),\n", " (345, np.float64(0.015542921836058245)),\n", " (346, np.float64(0.03902659506471766)),\n", " (347, np.float64(0.06681045925540752)),\n", " (348, np.float64(0.09014973218560088)),\n", " (349, np.float64(0.05914734917065386)),\n", " (350, np.float64(0.06206857320564754)),\n", " (351, np.float64(0.0)),\n", " (352, np.float64(0.020059585724360268)),\n", " (353, np.float64(0.07843565693314272)),\n", " (354, np.float64(0.16337845332530374)),\n", " (355, np.float64(0.07161075491687474)),\n", " (356, np.float64(0.0)),\n", " (357, np.float64(0.1459525808785892)),\n", " (358, np.float64(0.07561631141753603)),\n", " (359, np.float64(0.029397384230560795)),\n", " (360, np.float64(0.047796293241950796)),\n", " (361, np.float64(0.018072383204619496)),\n", " (362, np.float64(0.11362722122094872)),\n", " (363, np.float64(0.09791273187403501)),\n", " (364, np.float64(0.07999692625971765)),\n", " (365, np.float64(0.0891233745026412)),\n", " (366, np.float64(0.10941777035919222)),\n", " (367, np.float64(0.0)),\n", " (368, np.float64(0.02115842407200956)),\n", " (369, np.float64(0.060039300152930415)),\n", " (370, np.float64(0.017971540540139944)),\n", " (371, np.float64(0.05755407693373189)),\n", " (372, np.float64(0.021668631362692693)),\n", " (373, np.float64(0.09754449459555777)),\n", " (374, np.float64(0.13107651944057502)),\n", " (375, np.float64(0.0)),\n", " (376, np.float64(0.06829903941402894)),\n", " (377, np.float64(0.09132921952528268)),\n", " (378, np.float64(0.0)),\n", " (379, np.float64(0.02781406274224919)),\n", " (380, np.float64(0.015333681815045101)),\n", " (381, np.float64(0.06113178628791212)),\n", " (382, np.float64(0.017572862308732076)),\n", " (383, np.float64(0.024712941476041382)),\n", " (384, np.float64(0.018015801292409934)),\n", " (385, np.float64(0.1178980615083171)),\n", " (386, np.float64(0.06468143253238315)),\n", " (387, np.float64(0.1390419059870689)),\n", " (388, np.float64(0.0)),\n", " (389, np.float64(0.06671644037106779)),\n", " (390, np.float64(0.0)),\n", " (391, np.float64(0.0)),\n", " (392, np.float64(0.057620863815487075)),\n", " (393, np.float64(0.02266096293926825)),\n", " (394, np.float64(0.008448763927099017)),\n", " (395, np.float64(0.02297481006625077)),\n", " (396, np.float64(0.07136276113078666)),\n", " (397, np.float64(0.1530551446766823)),\n", " (398, np.float64(0.06039873575147915)),\n", " (399, np.float64(0.0)),\n", " (400, np.float64(0.08996912406728536)),\n", " (401, np.float64(0.015459465622161536)),\n", " (402, np.float64(0.10135299399598713)),\n", " (403, np.float64(0.0)),\n", " (404, np.float64(0.016763442237401817)),\n", " (405, np.float64(0.0)),\n", " (406, np.float64(0.05021880312673623)),\n", " (407, np.float64(0.16041182196659062)),\n", " (408, np.float64(0.0)),\n", " (409, np.float64(0.1343973311768824)),\n", " (410, np.float64(0.12508513698245888)),\n", " (411, np.float64(0.02329035016031528)),\n", " (412, np.float64(0.019872703940133213)),\n", " (413, np.float64(0.011056735115042383)),\n", " (414, np.float64(0.025480338679592467)),\n", " (415, np.float64(0.0089604367821904)),\n", " (416, np.float64(0.0824612198578452)),\n", " (417, np.float64(0.01902896010686717)),\n", " (418, np.float64(0.07025002832914887)),\n", " (419, np.float64(0.021636698437203145)),\n", " (420, np.float64(0.12822981990037824)),\n", " (421, np.float64(0.0999877199669616)),\n", " (422, np.float64(0.08642894687915843)),\n", " (423, np.float64(0.0635519690782283)),\n", " (424, np.float64(0.028830240654024085)),\n", " (425, np.float64(0.04335826491498011)),\n", " (426, np.float64(0.04706590154362337)),\n", " (427, np.float64(0.0522373263993224)),\n", " (428, np.float64(0.0)),\n", " (429, np.float64(0.08982750671022352)),\n", " (430, np.float64(0.00875634332679306)),\n", " (431, np.float64(0.09923541776574221)),\n", " (432, np.float64(0.10228551050235933)),\n", " (433, np.float64(0.0)),\n", " (434, np.float64(0.12307492189941618)),\n", " (435, np.float64(0.01758928833928951)),\n", " (436, np.float64(0.020281245334279798)),\n", " (437, np.float64(0.1033826953037451)),\n", " (438, np.float64(0.130281708532021)),\n", " (439, np.float64(0.08988894455657523)),\n", " (440, np.float64(0.09005001295005992)),\n", " (441, np.float64(0.05332049434044375)),\n", " (442, np.float64(0.08033435626539932)),\n", " (443, np.float64(0.045977952103493924)),\n", " (444, np.float64(0.061398875647666676)),\n", " (445, np.float64(0.023007092325074995)),\n", " (446, np.float64(0.023049037833599993)),\n", " (447, np.float64(0.06523041320455897)),\n", " (448, np.float64(0.01915362558614925)),\n", " (449, np.float64(0.0)),\n", " (450, np.float64(0.04542765998492866)),\n", " (451, np.float64(0.0)),\n", " (452, np.float64(0.0)),\n", " (453, np.float64(0.05261953990010256)),\n", " (454, np.float64(0.01317087876205714)),\n", " (455, np.float64(0.0)),\n", " (456, np.float64(0.0)),\n", " (457, np.float64(0.048593102089385304)),\n", " (458, np.float64(0.07348190409223959)),\n", " (459, np.float64(0.10354480865656568)),\n", " (460, np.float64(0.0171880657878069)),\n", " (461, np.float64(0.09919937023309428)),\n", " (462, np.float64(0.08091989315700655)),\n", " (463, np.float64(0.0035883533320389396)),\n", " (464, np.float64(0.04757132169040053)),\n", " (465, np.float64(0.11122764671322921)),\n", " (466, np.float64(0.051434806536338154)),\n", " (467, np.float64(0.05666140304625101)),\n", " (468, np.float64(0.0)),\n", " (469, np.float64(0.060877194204984726)),\n", " (470, np.float64(0.10800615252570414)),\n", " (471, np.float64(0.0)),\n", " (472, np.float64(0.0755468596127809)),\n", " (473, np.float64(0.0)),\n", " (474, np.float64(0.13644383961641227)),\n", " (475, np.float64(0.04796762686649386)),\n", " (476, np.float64(0.16104067376144765)),\n", " (477, np.float64(0.0)),\n", " (478, np.float64(0.017598641856748937)),\n", " (479, np.float64(0.05438295377092604)),\n", " (480, np.float64(0.0)),\n", " (481, np.float64(0.08100800937525751)),\n", " (482, np.float64(0.13090710604063543)),\n", " (483, np.float64(0.00581843892000093)),\n", " (484, np.float64(0.07150547342980032)),\n", " (485, np.float64(0.05428487095514969)),\n", " (486, np.float64(0.06143184266443724)),\n", " (487, np.float64(0.051616531477964966)),\n", " (488, np.float64(0.19511819825564608)),\n", " (489, np.float64(0.1149487959814155)),\n", " (490, np.float64(0.06513046875777172)),\n", " (491, np.float64(0.06401961292305569)),\n", " (492, np.float64(0.0)),\n", " (493, np.float64(0.0)),\n", " (494, np.float64(0.10853661984252007)),\n", " (495, np.float64(0.11400426236261282)),\n", " (496, np.float64(0.046392498261486066)),\n", " (497, np.float64(0.018252769789423258)),\n", " (498, np.float64(0.0)),\n", " (499, np.float64(0.011952011165403655)),\n", " (500, np.float64(0.21057743765309012)),\n", " (501, np.float64(0.058097069301565475)),\n", " (502, np.float64(0.043491562429456586)),\n", " (503, np.float64(0.02646255704581015)),\n", " (504, np.float64(0.07276403383736725)),\n", " (505, np.float64(0.05264856975654457)),\n", " (506, np.float64(0.07242165076731459)),\n", " (507, np.float64(0.06790897506872169)),\n", " (508, np.float64(0.016265641643564675)),\n", " (509, np.float64(0.024318094429406693)),\n", " (510, np.float64(0.020935646634428463)),\n", " (511, np.float64(0.13617057407600314)),\n", " (512, np.float64(0.11784149206441577)),\n", " (513, np.float64(0.08588206473402643)),\n", " (514, np.float64(0.0928435169211848)),\n", " (515, np.float64(0.11277296885857815)),\n", " (516, np.float64(0.06868983304237651)),\n", " (517, np.float64(0.08200947294838494)),\n", " (518, np.float64(0.13369059478865902)),\n", " (519, np.float64(0.0)),\n", " (520, np.float64(0.19972624710300058)),\n", " (521, np.float64(0.0228620664348094)),\n", " (522, np.float64(0.08062879942666365)),\n", " (523, np.float64(0.0)),\n", " (524, np.float64(0.057560148077814344)),\n", " (525, np.float64(0.06738056011305654)),\n", " (526, np.float64(0.0)),\n", " (527, np.float64(0.19656287691544358)),\n", " (528, np.float64(0.06306425554305625)),\n", " (529, np.float64(0.03499381360818396)),\n", " (530, np.float64(0.06123118935155921)),\n", " (531, np.float64(0.09596456280564838)),\n", " (532, np.float64(0.021801683645525486)),\n", " (533, np.float64(0.023175154774464087)),\n", " (534, np.float64(0.06476148889541151)),\n", " (535, np.float64(0.07052240553428667)),\n", " (536, np.float64(0.08280451731096075)),\n", " (537, np.float64(0.1700871998622835)),\n", " (538, np.float64(0.07213921021695388)),\n", " (539, np.float64(0.011722012964226876)),\n", " (540, np.float64(0.08541217689607684)),\n", " (541, np.float64(0.17990898085771034)),\n", " (542, np.float64(0.08007284499901246)),\n", " (543, np.float64(0.017396246144706713)),\n", " (544, np.float64(0.1672877700938274)),\n", " (545, np.float64(0.2639619371123497)),\n", " (546, np.float64(0.18408910419891056)),\n", " (547, np.float64(0.05600272988869)),\n", " (548, np.float64(0.04133585716291763)),\n", " (549, np.float64(0.0691101496608291)),\n", " (550, np.float64(0.1445684727872654)),\n", " (551, np.float64(0.2262639743141286)),\n", " (552, np.float64(0.1920889620576415)),\n", " (553, np.float64(0.023933399289577127)),\n", " (554, np.float64(0.20025063706783053)),\n", " (555, np.float64(0.015076532862248153)),\n", " (556, np.float64(0.05144282019851702)),\n", " (557, np.float64(0.12333680291383342)),\n", " (558, np.float64(0.1420165983985733)),\n", " (559, np.float64(0.024720785609384784)),\n", " (560, np.float64(0.08563805381851426)),\n", " (561, np.float64(0.023634261138311616)),\n", " (562, np.float64(0.1279402426979562)),\n", " (563, np.float64(0.01083152786792504)),\n", " (564, np.float64(0.07352435567112062)),\n", " (565, np.float64(0.09532519178944057)),\n", " (566, np.float64(0.03421894679431926)),\n", " (567, np.float64(0.0719421185191427)),\n", " (568, np.float64(0.022970785411852147)),\n", " (569, np.float64(0.15344079020689355)),\n", " (570, np.float64(0.0885630163776942)),\n", " (571, np.float64(0.0)),\n", " (572, np.float64(0.0)),\n", " (573, np.float64(0.018786559700050654)),\n", " (574, np.float64(0.09772941568150427)),\n", " (575, np.float64(0.044043586511889346)),\n", " (576, np.float64(0.15211972188253267)),\n", " (577, np.float64(0.015222501642298877)),\n", " (578, np.float64(0.10307399310158656)),\n", " (579, np.float64(0.057157891413611744)),\n", " (580, np.float64(0.046000562607200646)),\n", " (581, np.float64(0.06303898971663935)),\n", " (582, np.float64(0.06572303470837207)),\n", " (583, np.float64(0.14421330855040418)),\n", " (584, np.float64(0.08272478073987326)),\n", " (585, np.float64(0.0)),\n", " (586, np.float64(0.04203701143606598)),\n", " (587, np.float64(0.022760772453994885)),\n", " (588, np.float64(0.1738182944100774)),\n", " (589, np.float64(0.019099672781938637)),\n", " (590, np.float64(0.16000267935045498)),\n", " (591, np.float64(0.14681485749917436)),\n", " (592, np.float64(0.0)),\n", " (593, np.float64(0.05940546334243634)),\n", " (594, np.float64(0.07725115117942094)),\n", " (595, np.float64(0.07464762808145006)),\n", " (596, np.float64(0.06546695823953794)),\n", " (597, np.float64(0.07021576771146076)),\n", " (598, np.float64(0.189213677823462)),\n", " (599, np.float64(0.02494136129371724)),\n", " (600, np.float64(0.017050265851722604)),\n", " (601, np.float64(0.05437622462310082)),\n", " (602, np.float64(0.04932819154504025)),\n", " (603, np.float64(0.0)),\n", " (604, np.float64(0.1144539948977886)),\n", " (605, np.float64(0.08001595368794218)),\n", " (606, np.float64(0.12858515029485706)),\n", " (607, np.float64(0.023066582966561253)),\n", " (608, np.float64(0.06129105448105361)),\n", " (609, np.float64(0.02090768582511093)),\n", " (610, np.float64(0.04550867061591275)),\n", " (611, np.float64(0.10266590131312461)),\n", " (612, np.float64(0.10725981836116358)),\n", " (613, np.float64(0.026053401473749117)),\n", " (614, np.float64(0.0017370894470936135)),\n", " (615, np.float64(0.0987294045857185)),\n", " (616, np.float64(0.0807748212690039)),\n", " (617, np.float64(0.02159225803102367)),\n", " (618, np.float64(0.016142753550857224)),\n", " (619, np.float64(0.020846396819831855)),\n", " (620, np.float64(0.09797466122629746)),\n", " (621, np.float64(0.019067312487474012)),\n", " (622, np.float64(0.18571699439818884)),\n", " (623, np.float64(0.053445774200822666)),\n", " (624, np.float64(0.1892531370760997)),\n", " (625, np.float64(0.05894189200911533)),\n", " (626, np.float64(0.014881608648267744)),\n", " (627, np.float64(0.12024780353669523)),\n", " (628, np.float64(0.09840359079895453)),\n", " (629, np.float64(0.010481255663709239)),\n", " (630, np.float64(0.10596223905942811)),\n", " (631, np.float64(0.07617194789896939)),\n", " (632, np.float64(0.0805438980307519)),\n", " (633, np.float64(0.0)),\n", " (634, np.float64(0.23299389358170394)),\n", " (635, np.float64(0.01073641547918824)),\n", " (636, np.float64(0.13573542468856645)),\n", " (637, np.float64(0.045785523306335146)),\n", " (638, np.float64(0.14440017099395475)),\n", " (639, np.float64(0.0)),\n", " (640, np.float64(0.12522954271046702)),\n", " (641, np.float64(0.06455010070487521)),\n", " (642, np.float64(0.02817521704586765)),\n", " (643, np.float64(0.1444555917585842)),\n", " (644, np.float64(0.017210453378914768)),\n", " (645, np.float64(0.09508161331593905)),\n", " (646, np.float64(0.05179020017229585)),\n", " (647, np.float64(0.1841081817659337)),\n", " (648, np.float64(0.08704223712018071)),\n", " (649, np.float64(0.1099076405115528)),\n", " (650, np.float64(0.10850377176901972)),\n", " (651, np.float64(0.03954864515701187)),\n", " (652, np.float64(0.03836309816637586)),\n", " (653, np.float64(0.02463490862737704)),\n", " (654, np.float64(0.07845404559691257)),\n", " (655, np.float64(0.03455547895208963)),\n", " (656, np.float64(0.030076807297674774)),\n", " (657, np.float64(0.024840764583155147)),\n", " (658, np.float64(0.04223674045619745)),\n", " (659, np.float64(0.14444516556944695)),\n", " (660, np.float64(0.12340233502840114)),\n", " (661, np.float64(0.015102006885841438)),\n", " (662, np.float64(0.028443700563612766)),\n", " (663, np.float64(0.021320163671431275)),\n", " (664, np.float64(0.07391777683093743)),\n", " (665, np.float64(0.08904275766583061)),\n", " (666, np.float64(0.1589387141616799)),\n", " (667, np.float64(0.06947573726333098)),\n", " (668, np.float64(0.010607867311865709)),\n", " (669, np.float64(0.0)),\n", " (670, np.float64(0.09993168845101595)),\n", " (671, np.float64(0.05711356172333468)),\n", " (672, np.float64(0.09488374038474037)),\n", " (673, np.float64(0.009489432211152974)),\n", " (674, np.float64(0.13365875731715246)),\n", " (675, np.float64(0.057940637804840725)),\n", " (676, np.float64(0.0)),\n", " (677, np.float64(0.0672128392842741)),\n", " (678, np.float64(0.020669978441948792)),\n", " (679, np.float64(0.0)),\n", " (680, np.float64(0.018394279624570017)),\n", " (681, np.float64(0.0)),\n", " (682, np.float64(0.1265536444037226)),\n", " (683, np.float64(0.08418288167449578)),\n", " (684, np.float64(0.09095705260744957)),\n", " (685, np.float64(0.007305889033771798)),\n", " (686, np.float64(0.08143881222401984)),\n", " (687, np.float64(0.0)),\n", " (688, np.float64(0.042188025333763236)),\n", " (689, np.float64(0.0839284865111645)),\n", " (690, np.float64(0.07785800873431292)),\n", " (691, np.float64(0.0)),\n", " (692, np.float64(0.07151793939760115)),\n", " (693, np.float64(0.02407593195976403)),\n", " (694, np.float64(0.016351262734144115)),\n", " (695, np.float64(0.03734566872286401)),\n", " (696, np.float64(0.05237226614377158)),\n", " (697, np.float64(0.011401692977613393)),\n", " (698, np.float64(0.009687245558530464)),\n", " (699, np.float64(0.12530648498478347)),\n", " (700, np.float64(0.009099054369341325)),\n", " (701, np.float64(0.05864096359154978)),\n", " (702, np.float64(0.017696441246693336)),\n", " (703, np.float64(0.12110366748083307)),\n", " (704, np.float64(0.07347566833900478)),\n", " (705, np.float64(0.04316045784191231))]" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "list(enumerate(similarity[0]))" ] }, { "cell_type": "code", "execution_count": 50, "id": "fab480b0", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[(0, np.float64(0.9999999999999998)),\n", " (1, np.float64(0.10255024829874466)),\n", " (2, np.float64(0.012208555646509366)),\n", " (3, np.float64(0.0)),\n", " (4, np.float64(0.053672244225442485)),\n", " (5, np.float64(0.027749013024662858)),\n", " (6, np.float64(0.08216491130000354)),\n", " (7, np.float64(0.13732869060263378)),\n", " (8, np.float64(0.03261686350494277)),\n", " (9, np.float64(0.03667590746512177)),\n", " (10, np.float64(0.02322418425912186)),\n", " (11, np.float64(0.06766486753662343)),\n", " (12, np.float64(0.020839782065795794)),\n", " (13, np.float64(0.09673734976610586)),\n", " (14, np.float64(0.13388864701187034)),\n", " (15, np.float64(0.0830311169181103)),\n", " (16, np.float64(0.1115354275858341)),\n", " (17, np.float64(0.05100410510067514)),\n", " (18, np.float64(0.025177841632809915)),\n", " (19, np.float64(0.11706383185253948)),\n", " (20, np.float64(0.0)),\n", " (21, np.float64(0.14333792815336935)),\n", " (22, np.float64(0.07847534327232125)),\n", " (23, np.float64(0.06150451339525138)),\n", " (24, np.float64(0.08723968326958673)),\n", " (25, np.float64(0.0)),\n", " (26, np.float64(0.07009814362931202)),\n", " (27, np.float64(0.13658680855472938)),\n", " (28, np.float64(0.07600327535501017)),\n", " (29, np.float64(0.12167133598776536)),\n", " (30, np.float64(0.007680459111722776)),\n", " (31, np.float64(0.01473221255132234)),\n", " (32, np.float64(0.0)),\n", " (33, np.float64(0.07965814289647455)),\n", " (34, np.float64(0.04522616573040869)),\n", " (35, np.float64(0.01556270914112474)),\n", " (36, np.float64(0.09495937740802216)),\n", " (37, np.float64(0.018230696811058135)),\n", " (38, np.float64(0.026104653172312028)),\n", " (39, np.float64(0.07984012108659384)),\n", " (40, np.float64(0.11679968613719668)),\n", " (41, np.float64(0.056912401804646934)),\n", " (42, np.float64(0.08354155383339157)),\n", " (43, np.float64(0.08471898090442946)),\n", " (44, np.float64(0.08785938150991274)),\n", " (45, np.float64(0.05491435163039676)),\n", " (46, np.float64(0.054850498513470236)),\n", " (47, np.float64(0.2702651417103732)),\n", " (48, np.float64(0.09779122591837028)),\n", " (49, np.float64(0.060160461842087495)),\n", " (50, np.float64(0.08958834926611466)),\n", " (51, np.float64(0.06748675491514017)),\n", " (52, np.float64(0.0)),\n", " (53, np.float64(0.044680983219421905)),\n", " (54, np.float64(0.019208718234636258)),\n", " (55, np.float64(0.0)),\n", " (56, np.float64(0.05629066845910846)),\n", " (57, np.float64(0.005579638588454276)),\n", " (58, np.float64(0.07877058635507732)),\n", " (59, np.float64(0.052194792200893965)),\n", " (60, np.float64(0.18908176672188648)),\n", " (61, np.float64(0.0)),\n", " (62, np.float64(0.012406560213354146)),\n", " (63, np.float64(0.029845724311982225)),\n", " (64, np.float64(0.04279501979786338)),\n", " (65, np.float64(0.12680124740531368)),\n", " (66, np.float64(0.16566734565340116)),\n", " (67, np.float64(0.0)),\n", " (68, np.float64(0.13357242093379193)),\n", " (69, np.float64(0.06615478064452682)),\n", " (70, np.float64(0.0)),\n", " (71, np.float64(0.0)),\n", " (72, np.float64(0.0)),\n", " (73, np.float64(0.1096807501418389)),\n", " (74, np.float64(0.02806606106883051)),\n", " (75, np.float64(0.04521795287053612)),\n", " (76, np.float64(0.02613276804655889)),\n", " (77, np.float64(0.06876130890656589)),\n", " (78, np.float64(0.013316271087745269)),\n", " (79, np.float64(0.10519138203342883)),\n", " (80, np.float64(0.03349456939792139)),\n", " (81, np.float64(0.013634576553468258)),\n", " (82, np.float64(0.23669374347400993)),\n", " (83, np.float64(0.0)),\n", " (84, np.float64(0.10397940924207362)),\n", " (85, np.float64(0.06167753120046458)),\n", " (86, np.float64(0.1417627291694863)),\n", " (87, np.float64(0.11661082872914152)),\n", " (88, np.float64(0.08331012208964667)),\n", " (89, np.float64(0.00850895140653615)),\n", " (90, np.float64(0.06715432766232284)),\n", " (91, np.float64(0.0)),\n", " (92, np.float64(0.15850821182810643)),\n", " (93, np.float64(0.03280520241000348)),\n", " (94, np.float64(0.010689154840164533)),\n", " (95, np.float64(0.025797824097510556)),\n", " (96, np.float64(0.02114858980511902)),\n", " (97, np.float64(0.02687778911799567)),\n", " (98, np.float64(0.02175821065382328)),\n", " (99, np.float64(0.0)),\n", " (100, np.float64(0.016016629607635186)),\n", " (101, np.float64(0.12114265984279052)),\n", " (102, np.float64(0.04768602689229997)),\n", " (103, np.float64(0.058191840680734276)),\n", " (104, np.float64(0.06510721558252526)),\n", " (105, np.float64(0.0)),\n", " (106, np.float64(0.047670497142785574)),\n", " (107, np.float64(0.05273164983675109)),\n", " (108, np.float64(0.02810009706063171)),\n", " (109, np.float64(0.06524573363186935)),\n", " (110, np.float64(0.021163446843373374)),\n", " (111, np.float64(0.02097867986921867)),\n", " (112, np.float64(0.07422249010392888)),\n", " (113, np.float64(0.017527779718968118)),\n", " (114, np.float64(0.03734566872286401)),\n", " (115, np.float64(0.0)),\n", " (116, np.float64(0.01579666260459111)),\n", " (117, np.float64(0.1103944810687539)),\n", " (118, np.float64(0.165272766123669)),\n", " (119, np.float64(0.15514318804365945)),\n", " (120, np.float64(0.06237453600241552)),\n", " (121, np.float64(0.08139488796880032)),\n", " (122, np.float64(0.056554138733275305)),\n", " (123, np.float64(0.07458202717929566)),\n", " (124, np.float64(0.03771888280719047)),\n", " (125, np.float64(0.059363300295016304)),\n", " (126, np.float64(0.02955369248311012)),\n", " (127, np.float64(0.03355602562283)),\n", " (128, np.float64(0.04734092759216691)),\n", " (129, np.float64(0.010066425112509755)),\n", " (130, np.float64(0.016719816747289874)),\n", " (131, np.float64(0.07258934796997447)),\n", " (132, np.float64(0.0)),\n", " (133, np.float64(0.0)),\n", " (134, np.float64(0.0)),\n", " (135, np.float64(0.02428501142412964)),\n", " (136, np.float64(0.030678189040978528)),\n", " (137, np.float64(0.09974980034668827)),\n", " (138, np.float64(0.0)),\n", " (139, np.float64(0.016901518597837405)),\n", " (140, np.float64(0.024108621631248803)),\n", " (141, np.float64(0.028108399645259814)),\n", " (142, np.float64(0.0)),\n", " (143, np.float64(0.0)),\n", " (144, np.float64(0.0181287703514146)),\n", " (145, np.float64(0.028808272598853126)),\n", " (146, np.float64(0.0)),\n", " (147, np.float64(0.05995157134958024)),\n", " (148, np.float64(0.021276714965680187)),\n", " (149, np.float64(0.10341190148072846)),\n", " (150, np.float64(0.027667475691473428)),\n", " (151, np.float64(0.10684794535545848)),\n", " (152, np.float64(0.09898722239993361)),\n", " (153, np.float64(0.14145186155692357)),\n", " (154, np.float64(0.05007429159938883)),\n", " (155, np.float64(0.09428288870384942)),\n", " (156, np.float64(0.014112489355409683)),\n", " (157, np.float64(0.0)),\n", " (158, np.float64(0.07835976130061303)),\n", " (159, np.float64(0.00882242400686552)),\n", " (160, np.float64(0.04515898041752436)),\n", " (161, np.float64(0.0)),\n", " (162, np.float64(0.012814117802391826)),\n", " (163, np.float64(0.04003333547158616)),\n", " (164, np.float64(0.07477661367406771)),\n", " (165, np.float64(0.012179056920074677)),\n", " (166, np.float64(0.018873932015163516)),\n", " (167, np.float64(0.026674838717939867)),\n", " (168, np.float64(0.01432863977616057)),\n", " (169, np.float64(0.14702846562277322)),\n", " (170, np.float64(0.06087281632872059)),\n", " (171, np.float64(0.025783211586063344)),\n", " (172, np.float64(0.027418756526771074)),\n", " (173, np.float64(0.0)),\n", " (174, np.float64(0.14909595195082756)),\n", " (175, np.float64(0.05606788035530558)),\n", " (176, np.float64(0.0)),\n", " (177, np.float64(0.03199916313406436)),\n", " (178, np.float64(0.03643816906953526)),\n", " (179, np.float64(0.0)),\n", " (180, np.float64(0.01962921144060071)),\n", " (181, np.float64(0.22222254415660225)),\n", " (182, np.float64(0.015158449197584845)),\n", " (183, np.float64(0.09673267751838878)),\n", " (184, np.float64(0.02190023295408395)),\n", " (185, np.float64(0.020135489410098205)),\n", " (186, np.float64(0.05400331245399732)),\n", " (187, np.float64(0.07262017448772083)),\n", " (188, np.float64(0.011116365315772406)),\n", " (189, np.float64(0.036498718026030004)),\n", " (190, np.float64(0.05994663767295999)),\n", " (191, np.float64(0.0)),\n", " (192, np.float64(0.14691166711955864)),\n", " (193, np.float64(0.020860053643757807)),\n", " (194, np.float64(0.1035963528100001)),\n", " (195, np.float64(0.09794374510256892)),\n", " (196, np.float64(0.06609996896203728)),\n", " (197, np.float64(0.12871083086643306)),\n", " (198, np.float64(0.08992738703666601)),\n", " (199, np.float64(0.011474570339750256)),\n", " (200, np.float64(0.024601653277066596)),\n", " (201, np.float64(0.0)),\n", " (202, np.float64(0.18049207281616433)),\n", " (203, np.float64(0.05141892092902459)),\n", " (204, np.float64(0.047717402129725514)),\n", " (205, np.float64(0.10849696385128585)),\n", " (206, np.float64(0.1327813903167589)),\n", " (207, np.float64(0.059152881703632795)),\n", " (208, np.float64(0.053729841666378134)),\n", " (209, np.float64(0.034785003361519164)),\n", " (210, np.float64(0.0)),\n", " (211, np.float64(0.09203038690315052)),\n", " (212, np.float64(0.06388401351716998)),\n", " (213, np.float64(0.04773328410790857)),\n", " (214, np.float64(0.15570975499937129)),\n", " (215, np.float64(0.08420691059370962)),\n", " (216, np.float64(0.12338216998991305)),\n", " (217, np.float64(0.08784690368235953)),\n", " (218, np.float64(0.08205944603394638)),\n", " (219, np.float64(0.12177532243608828)),\n", " (220, np.float64(0.024337026385897676)),\n", " (221, np.float64(0.00272862336930817)),\n", " (222, np.float64(0.0)),\n", " (223, np.float64(0.0)),\n", " (224, np.float64(0.03671505063990275)),\n", " (225, np.float64(0.1528098402276361)),\n", " (226, np.float64(0.03709430441334803)),\n", " (227, np.float64(0.07458136399603107)),\n", " (228, np.float64(0.09746696979819942)),\n", " (229, np.float64(0.05416091103251691)),\n", " (230, np.float64(0.10266993316420167)),\n", " (231, np.float64(0.0757441443938586)),\n", " (232, np.float64(0.06426525769208898)),\n", " (233, np.float64(0.03601739518550193)),\n", " (234, np.float64(0.01559751952620105)),\n", " (235, np.float64(0.02033558874805688)),\n", " (236, np.float64(0.024635927968282654)),\n", " (237, np.float64(0.0)),\n", " (238, np.float64(0.03349154464789058)),\n", " (239, np.float64(0.021353685011361416)),\n", " (240, np.float64(0.019033695446023926)),\n", " (241, np.float64(0.06806264765162154)),\n", " (242, np.float64(0.020321161226731627)),\n", " (243, np.float64(0.11784705785247843)),\n", " (244, np.float64(0.07839488163675291)),\n", " (245, np.float64(0.08422557655984436)),\n", " (246, np.float64(0.0)),\n", " (247, np.float64(0.02040796206066411)),\n", " (248, np.float64(0.0)),\n", " (249, np.float64(0.046982457315643385)),\n", " (250, np.float64(0.08294512991462386)),\n", " (251, np.float64(0.13974513728492968)),\n", " (252, np.float64(0.012345246102533871)),\n", " (253, np.float64(0.1351060763800879)),\n", " (254, np.float64(0.07423488726781508)),\n", " (255, np.float64(0.1184188929166314)),\n", " (256, np.float64(0.049300912125160704)),\n", " (257, np.float64(0.016216682151444957)),\n", " (258, np.float64(0.026330228561191004)),\n", " (259, np.float64(0.04815971759587031)),\n", " (260, np.float64(0.019598256153707194)),\n", " (261, np.float64(0.10174252819190155)),\n", " (262, np.float64(0.13257638388225185)),\n", " (263, np.float64(0.0)),\n", " (264, np.float64(0.055102704646119355)),\n", " (265, np.float64(0.018611497829688243)),\n", " (266, np.float64(0.0)),\n", " (267, np.float64(0.04504597870526374)),\n", " (268, np.float64(0.03482458685305275)),\n", " (269, np.float64(0.1650329228149958)),\n", " (270, np.float64(0.08466191294337998)),\n", " (271, np.float64(0.06795352889900172)),\n", " (272, np.float64(0.029876534978291205)),\n", " (273, np.float64(0.0)),\n", " (274, np.float64(0.0)),\n", " (275, np.float64(0.08781992709390865)),\n", " (276, np.float64(0.07885279086963545)),\n", " (277, np.float64(0.04799058127298857)),\n", " (278, np.float64(0.014679640011206505)),\n", " (279, np.float64(0.021238372796229556)),\n", " (280, np.float64(0.04549923467689111)),\n", " (281, np.float64(0.08673968616705958)),\n", " (282, np.float64(0.00885998445194921)),\n", " (283, np.float64(0.028806369616477166)),\n", " (284, np.float64(0.020221447157344582)),\n", " (285, np.float64(0.024141217209915328)),\n", " (286, np.float64(0.12548312467838352)),\n", " (287, np.float64(0.0)),\n", " (288, np.float64(0.02482518222135733)),\n", " (289, np.float64(0.06520605980064662)),\n", " (290, np.float64(0.0)),\n", " (291, np.float64(0.06069830203664196)),\n", " (292, np.float64(0.011778242975805127)),\n", " (293, np.float64(0.13974104783917973)),\n", " (294, np.float64(0.019788442258843547)),\n", " (295, np.float64(0.012608239194211564)),\n", " (296, np.float64(0.08608600626732467)),\n", " (297, np.float64(0.04433882752568145)),\n", " (298, np.float64(0.029430847399312027)),\n", " (299, np.float64(0.022424955017243866)),\n", " (300, np.float64(0.06541867556977009)),\n", " (301, np.float64(0.07866868132289853)),\n", " (302, np.float64(0.1428139852200272)),\n", " (303, np.float64(0.11979305199464946)),\n", " (304, np.float64(0.01858409288796079)),\n", " (305, np.float64(0.13445376799866068)),\n", " (306, np.float64(0.04809338200514574)),\n", " (307, np.float64(0.09790644477767069)),\n", " (308, np.float64(0.0)),\n", " (309, np.float64(0.17415730924332484)),\n", " (310, np.float64(0.07437756212042423)),\n", " (311, np.float64(0.0)),\n", " (312, np.float64(0.1238906533021012)),\n", " (313, np.float64(0.010423913217045038)),\n", " (314, np.float64(0.025808491020821493)),\n", " (315, np.float64(0.0)),\n", " (316, np.float64(0.08951389572154368)),\n", " (317, np.float64(0.04005551020725377)),\n", " (318, np.float64(0.19182230688281934)),\n", " (319, np.float64(0.02267512161790004)),\n", " (320, np.float64(0.017303468493582226)),\n", " (321, np.float64(0.03054044240047009)),\n", " (322, np.float64(0.0700882246357741)),\n", " (323, np.float64(0.10084626149563478)),\n", " (324, np.float64(0.10467615354986062)),\n", " (325, np.float64(0.016834621675675482)),\n", " (326, np.float64(0.12468283384023092)),\n", " (327, np.float64(0.10266459423639845)),\n", " (328, np.float64(0.035498355256648746)),\n", " (329, np.float64(0.026674838717939867)),\n", " (330, np.float64(0.07652764821891074)),\n", " (331, np.float64(0.08474055728984814)),\n", " (332, np.float64(0.018319772326554337)),\n", " (333, np.float64(0.021774817728178283)),\n", " (334, np.float64(0.15293362041446346)),\n", " (335, np.float64(0.0)),\n", " (336, np.float64(0.0)),\n", " (337, np.float64(0.010632508151830204)),\n", " (338, np.float64(0.021530886296301118)),\n", " (339, np.float64(0.02946442510264468)),\n", " (340, np.float64(0.0)),\n", " (341, np.float64(0.020767833514212724)),\n", " (342, np.float64(0.011948245768325256)),\n", " (343, np.float64(0.009536746594659161)),\n", " (344, np.float64(0.20675540390453995)),\n", " (345, np.float64(0.015542921836058245)),\n", " (346, np.float64(0.03902659506471766)),\n", " (347, np.float64(0.06681045925540752)),\n", " (348, np.float64(0.09014973218560088)),\n", " (349, np.float64(0.05914734917065386)),\n", " (350, np.float64(0.06206857320564754)),\n", " (351, np.float64(0.0)),\n", " (352, np.float64(0.020059585724360268)),\n", " (353, np.float64(0.07843565693314272)),\n", " (354, np.float64(0.16337845332530374)),\n", " (355, np.float64(0.07161075491687474)),\n", " (356, np.float64(0.0)),\n", " (357, np.float64(0.1459525808785892)),\n", " (358, np.float64(0.07561631141753603)),\n", " (359, np.float64(0.029397384230560795)),\n", " (360, np.float64(0.047796293241950796)),\n", " (361, np.float64(0.018072383204619496)),\n", " (362, np.float64(0.11362722122094872)),\n", " (363, np.float64(0.09791273187403501)),\n", " (364, np.float64(0.07999692625971765)),\n", " (365, np.float64(0.0891233745026412)),\n", " (366, np.float64(0.10941777035919222)),\n", " (367, np.float64(0.0)),\n", " (368, np.float64(0.02115842407200956)),\n", " (369, np.float64(0.060039300152930415)),\n", " (370, np.float64(0.017971540540139944)),\n", " (371, np.float64(0.05755407693373189)),\n", " (372, np.float64(0.021668631362692693)),\n", " (373, np.float64(0.09754449459555777)),\n", " (374, np.float64(0.13107651944057502)),\n", " (375, np.float64(0.0)),\n", " (376, np.float64(0.06829903941402894)),\n", " (377, np.float64(0.09132921952528268)),\n", " (378, np.float64(0.0)),\n", " (379, np.float64(0.02781406274224919)),\n", " (380, np.float64(0.015333681815045101)),\n", " (381, np.float64(0.06113178628791212)),\n", " (382, np.float64(0.017572862308732076)),\n", " (383, np.float64(0.024712941476041382)),\n", " (384, np.float64(0.018015801292409934)),\n", " (385, np.float64(0.1178980615083171)),\n", " (386, np.float64(0.06468143253238315)),\n", " (387, np.float64(0.1390419059870689)),\n", " (388, np.float64(0.0)),\n", " (389, np.float64(0.06671644037106779)),\n", " (390, np.float64(0.0)),\n", " (391, np.float64(0.0)),\n", " (392, np.float64(0.057620863815487075)),\n", " (393, np.float64(0.02266096293926825)),\n", " (394, np.float64(0.008448763927099017)),\n", " (395, np.float64(0.02297481006625077)),\n", " (396, np.float64(0.07136276113078666)),\n", " (397, np.float64(0.1530551446766823)),\n", " (398, np.float64(0.06039873575147915)),\n", " (399, np.float64(0.0)),\n", " (400, np.float64(0.08996912406728536)),\n", " (401, np.float64(0.015459465622161536)),\n", " (402, np.float64(0.10135299399598713)),\n", " (403, np.float64(0.0)),\n", " (404, np.float64(0.016763442237401817)),\n", " (405, np.float64(0.0)),\n", " (406, np.float64(0.05021880312673623)),\n", " (407, np.float64(0.16041182196659062)),\n", " (408, np.float64(0.0)),\n", " (409, np.float64(0.1343973311768824)),\n", " (410, np.float64(0.12508513698245888)),\n", " (411, np.float64(0.02329035016031528)),\n", " (412, np.float64(0.019872703940133213)),\n", " (413, np.float64(0.011056735115042383)),\n", " (414, np.float64(0.025480338679592467)),\n", " (415, np.float64(0.0089604367821904)),\n", " (416, np.float64(0.0824612198578452)),\n", " (417, np.float64(0.01902896010686717)),\n", " (418, np.float64(0.07025002832914887)),\n", " (419, np.float64(0.021636698437203145)),\n", " (420, np.float64(0.12822981990037824)),\n", " (421, np.float64(0.0999877199669616)),\n", " (422, np.float64(0.08642894687915843)),\n", " (423, np.float64(0.0635519690782283)),\n", " (424, np.float64(0.028830240654024085)),\n", " (425, np.float64(0.04335826491498011)),\n", " (426, np.float64(0.04706590154362337)),\n", " (427, np.float64(0.0522373263993224)),\n", " (428, np.float64(0.0)),\n", " (429, np.float64(0.08982750671022352)),\n", " (430, np.float64(0.00875634332679306)),\n", " (431, np.float64(0.09923541776574221)),\n", " (432, np.float64(0.10228551050235933)),\n", " (433, np.float64(0.0)),\n", " (434, np.float64(0.12307492189941618)),\n", " (435, np.float64(0.01758928833928951)),\n", " (436, np.float64(0.020281245334279798)),\n", " (437, np.float64(0.1033826953037451)),\n", " (438, np.float64(0.130281708532021)),\n", " (439, np.float64(0.08988894455657523)),\n", " (440, np.float64(0.09005001295005992)),\n", " (441, np.float64(0.05332049434044375)),\n", " (442, np.float64(0.08033435626539932)),\n", " (443, np.float64(0.045977952103493924)),\n", " (444, np.float64(0.061398875647666676)),\n", " (445, np.float64(0.023007092325074995)),\n", " (446, np.float64(0.023049037833599993)),\n", " (447, np.float64(0.06523041320455897)),\n", " (448, np.float64(0.01915362558614925)),\n", " (449, np.float64(0.0)),\n", " (450, np.float64(0.04542765998492866)),\n", " (451, np.float64(0.0)),\n", " (452, np.float64(0.0)),\n", " (453, np.float64(0.05261953990010256)),\n", " (454, np.float64(0.01317087876205714)),\n", " (455, np.float64(0.0)),\n", " (456, np.float64(0.0)),\n", " (457, np.float64(0.048593102089385304)),\n", " (458, np.float64(0.07348190409223959)),\n", " (459, np.float64(0.10354480865656568)),\n", " (460, np.float64(0.0171880657878069)),\n", " (461, np.float64(0.09919937023309428)),\n", " (462, np.float64(0.08091989315700655)),\n", " (463, np.float64(0.0035883533320389396)),\n", " (464, np.float64(0.04757132169040053)),\n", " (465, np.float64(0.11122764671322921)),\n", " (466, np.float64(0.051434806536338154)),\n", " (467, np.float64(0.05666140304625101)),\n", " (468, np.float64(0.0)),\n", " (469, np.float64(0.060877194204984726)),\n", " (470, np.float64(0.10800615252570414)),\n", " (471, np.float64(0.0)),\n", " (472, np.float64(0.0755468596127809)),\n", " (473, np.float64(0.0)),\n", " (474, np.float64(0.13644383961641227)),\n", " (475, np.float64(0.04796762686649386)),\n", " (476, np.float64(0.16104067376144765)),\n", " (477, np.float64(0.0)),\n", " (478, np.float64(0.017598641856748937)),\n", " (479, np.float64(0.05438295377092604)),\n", " (480, np.float64(0.0)),\n", " (481, np.float64(0.08100800937525751)),\n", " (482, np.float64(0.13090710604063543)),\n", " (483, np.float64(0.00581843892000093)),\n", " (484, np.float64(0.07150547342980032)),\n", " (485, np.float64(0.05428487095514969)),\n", " (486, np.float64(0.06143184266443724)),\n", " (487, np.float64(0.051616531477964966)),\n", " (488, np.float64(0.19511819825564608)),\n", " (489, np.float64(0.1149487959814155)),\n", " (490, np.float64(0.06513046875777172)),\n", " (491, np.float64(0.06401961292305569)),\n", " (492, np.float64(0.0)),\n", " (493, np.float64(0.0)),\n", " (494, np.float64(0.10853661984252007)),\n", " (495, np.float64(0.11400426236261282)),\n", " (496, np.float64(0.046392498261486066)),\n", " (497, np.float64(0.018252769789423258)),\n", " (498, np.float64(0.0)),\n", " (499, np.float64(0.011952011165403655)),\n", " (500, np.float64(0.21057743765309012)),\n", " (501, np.float64(0.058097069301565475)),\n", " (502, np.float64(0.043491562429456586)),\n", " (503, np.float64(0.02646255704581015)),\n", " (504, np.float64(0.07276403383736725)),\n", " (505, np.float64(0.05264856975654457)),\n", " (506, np.float64(0.07242165076731459)),\n", " (507, np.float64(0.06790897506872169)),\n", " (508, np.float64(0.016265641643564675)),\n", " (509, np.float64(0.024318094429406693)),\n", " (510, np.float64(0.020935646634428463)),\n", " (511, np.float64(0.13617057407600314)),\n", " (512, np.float64(0.11784149206441577)),\n", " (513, np.float64(0.08588206473402643)),\n", " (514, np.float64(0.0928435169211848)),\n", " (515, np.float64(0.11277296885857815)),\n", " (516, np.float64(0.06868983304237651)),\n", " (517, np.float64(0.08200947294838494)),\n", " (518, np.float64(0.13369059478865902)),\n", " (519, np.float64(0.0)),\n", " (520, np.float64(0.19972624710300058)),\n", " (521, np.float64(0.0228620664348094)),\n", " (522, np.float64(0.08062879942666365)),\n", " (523, np.float64(0.0)),\n", " (524, np.float64(0.057560148077814344)),\n", " (525, np.float64(0.06738056011305654)),\n", " (526, np.float64(0.0)),\n", " (527, np.float64(0.19656287691544358)),\n", " (528, np.float64(0.06306425554305625)),\n", " (529, np.float64(0.03499381360818396)),\n", " (530, np.float64(0.06123118935155921)),\n", " (531, np.float64(0.09596456280564838)),\n", " (532, np.float64(0.021801683645525486)),\n", " (533, np.float64(0.023175154774464087)),\n", " (534, np.float64(0.06476148889541151)),\n", " (535, np.float64(0.07052240553428667)),\n", " (536, np.float64(0.08280451731096075)),\n", " (537, np.float64(0.1700871998622835)),\n", " (538, np.float64(0.07213921021695388)),\n", " (539, np.float64(0.011722012964226876)),\n", " (540, np.float64(0.08541217689607684)),\n", " (541, np.float64(0.17990898085771034)),\n", " (542, np.float64(0.08007284499901246)),\n", " (543, np.float64(0.017396246144706713)),\n", " (544, np.float64(0.1672877700938274)),\n", " (545, np.float64(0.2639619371123497)),\n", " (546, np.float64(0.18408910419891056)),\n", " (547, np.float64(0.05600272988869)),\n", " (548, np.float64(0.04133585716291763)),\n", " (549, np.float64(0.0691101496608291)),\n", " (550, np.float64(0.1445684727872654)),\n", " (551, np.float64(0.2262639743141286)),\n", " (552, np.float64(0.1920889620576415)),\n", " (553, np.float64(0.023933399289577127)),\n", " (554, np.float64(0.20025063706783053)),\n", " (555, np.float64(0.015076532862248153)),\n", " (556, np.float64(0.05144282019851702)),\n", " (557, np.float64(0.12333680291383342)),\n", " (558, np.float64(0.1420165983985733)),\n", " (559, np.float64(0.024720785609384784)),\n", " (560, np.float64(0.08563805381851426)),\n", " (561, np.float64(0.023634261138311616)),\n", " (562, np.float64(0.1279402426979562)),\n", " (563, np.float64(0.01083152786792504)),\n", " (564, np.float64(0.07352435567112062)),\n", " (565, np.float64(0.09532519178944057)),\n", " (566, np.float64(0.03421894679431926)),\n", " (567, np.float64(0.0719421185191427)),\n", " (568, np.float64(0.022970785411852147)),\n", " (569, np.float64(0.15344079020689355)),\n", " (570, np.float64(0.0885630163776942)),\n", " (571, np.float64(0.0)),\n", " (572, np.float64(0.0)),\n", " (573, np.float64(0.018786559700050654)),\n", " (574, np.float64(0.09772941568150427)),\n", " (575, np.float64(0.044043586511889346)),\n", " (576, np.float64(0.15211972188253267)),\n", " (577, np.float64(0.015222501642298877)),\n", " (578, np.float64(0.10307399310158656)),\n", " (579, np.float64(0.057157891413611744)),\n", " (580, np.float64(0.046000562607200646)),\n", " (581, np.float64(0.06303898971663935)),\n", " (582, np.float64(0.06572303470837207)),\n", " (583, np.float64(0.14421330855040418)),\n", " (584, np.float64(0.08272478073987326)),\n", " (585, np.float64(0.0)),\n", " (586, np.float64(0.04203701143606598)),\n", " (587, np.float64(0.022760772453994885)),\n", " (588, np.float64(0.1738182944100774)),\n", " (589, np.float64(0.019099672781938637)),\n", " (590, np.float64(0.16000267935045498)),\n", " (591, np.float64(0.14681485749917436)),\n", " (592, np.float64(0.0)),\n", " (593, np.float64(0.05940546334243634)),\n", " (594, np.float64(0.07725115117942094)),\n", " (595, np.float64(0.07464762808145006)),\n", " (596, np.float64(0.06546695823953794)),\n", " (597, np.float64(0.07021576771146076)),\n", " (598, np.float64(0.189213677823462)),\n", " (599, np.float64(0.02494136129371724)),\n", " (600, np.float64(0.017050265851722604)),\n", " (601, np.float64(0.05437622462310082)),\n", " (602, np.float64(0.04932819154504025)),\n", " (603, np.float64(0.0)),\n", " (604, np.float64(0.1144539948977886)),\n", " (605, np.float64(0.08001595368794218)),\n", " (606, np.float64(0.12858515029485706)),\n", " (607, np.float64(0.023066582966561253)),\n", " (608, np.float64(0.06129105448105361)),\n", " (609, np.float64(0.02090768582511093)),\n", " (610, np.float64(0.04550867061591275)),\n", " (611, np.float64(0.10266590131312461)),\n", " (612, np.float64(0.10725981836116358)),\n", " (613, np.float64(0.026053401473749117)),\n", " (614, np.float64(0.0017370894470936135)),\n", " (615, np.float64(0.0987294045857185)),\n", " (616, np.float64(0.0807748212690039)),\n", " (617, np.float64(0.02159225803102367)),\n", " (618, np.float64(0.016142753550857224)),\n", " (619, np.float64(0.020846396819831855)),\n", " (620, np.float64(0.09797466122629746)),\n", " (621, np.float64(0.019067312487474012)),\n", " (622, np.float64(0.18571699439818884)),\n", " (623, np.float64(0.053445774200822666)),\n", " (624, np.float64(0.1892531370760997)),\n", " (625, np.float64(0.05894189200911533)),\n", " (626, np.float64(0.014881608648267744)),\n", " (627, np.float64(0.12024780353669523)),\n", " (628, np.float64(0.09840359079895453)),\n", " (629, np.float64(0.010481255663709239)),\n", " (630, np.float64(0.10596223905942811)),\n", " (631, np.float64(0.07617194789896939)),\n", " (632, np.float64(0.0805438980307519)),\n", " (633, np.float64(0.0)),\n", " (634, np.float64(0.23299389358170394)),\n", " (635, np.float64(0.01073641547918824)),\n", " (636, np.float64(0.13573542468856645)),\n", " (637, np.float64(0.045785523306335146)),\n", " (638, np.float64(0.14440017099395475)),\n", " (639, np.float64(0.0)),\n", " (640, np.float64(0.12522954271046702)),\n", " (641, np.float64(0.06455010070487521)),\n", " (642, np.float64(0.02817521704586765)),\n", " (643, np.float64(0.1444555917585842)),\n", " (644, np.float64(0.017210453378914768)),\n", " (645, np.float64(0.09508161331593905)),\n", " (646, np.float64(0.05179020017229585)),\n", " (647, np.float64(0.1841081817659337)),\n", " (648, np.float64(0.08704223712018071)),\n", " (649, np.float64(0.1099076405115528)),\n", " (650, np.float64(0.10850377176901972)),\n", " (651, np.float64(0.03954864515701187)),\n", " (652, np.float64(0.03836309816637586)),\n", " (653, np.float64(0.02463490862737704)),\n", " (654, np.float64(0.07845404559691257)),\n", " (655, np.float64(0.03455547895208963)),\n", " (656, np.float64(0.030076807297674774)),\n", " (657, np.float64(0.024840764583155147)),\n", " (658, np.float64(0.04223674045619745)),\n", " (659, np.float64(0.14444516556944695)),\n", " (660, np.float64(0.12340233502840114)),\n", " (661, np.float64(0.015102006885841438)),\n", " (662, np.float64(0.028443700563612766)),\n", " (663, np.float64(0.021320163671431275)),\n", " (664, np.float64(0.07391777683093743)),\n", " (665, np.float64(0.08904275766583061)),\n", " (666, np.float64(0.1589387141616799)),\n", " (667, np.float64(0.06947573726333098)),\n", " (668, np.float64(0.010607867311865709)),\n", " (669, np.float64(0.0)),\n", " (670, np.float64(0.09993168845101595)),\n", " (671, np.float64(0.05711356172333468)),\n", " (672, np.float64(0.09488374038474037)),\n", " (673, np.float64(0.009489432211152974)),\n", " (674, np.float64(0.13365875731715246)),\n", " (675, np.float64(0.057940637804840725)),\n", " (676, np.float64(0.0)),\n", " (677, np.float64(0.0672128392842741)),\n", " (678, np.float64(0.020669978441948792)),\n", " (679, np.float64(0.0)),\n", " (680, np.float64(0.018394279624570017)),\n", " (681, np.float64(0.0)),\n", " (682, np.float64(0.1265536444037226)),\n", " (683, np.float64(0.08418288167449578)),\n", " (684, np.float64(0.09095705260744957)),\n", " (685, np.float64(0.007305889033771798)),\n", " (686, np.float64(0.08143881222401984)),\n", " (687, np.float64(0.0)),\n", " (688, np.float64(0.042188025333763236)),\n", " (689, np.float64(0.0839284865111645)),\n", " (690, np.float64(0.07785800873431292)),\n", " (691, np.float64(0.0)),\n", " (692, np.float64(0.07151793939760115)),\n", " (693, np.float64(0.02407593195976403)),\n", " (694, np.float64(0.016351262734144115)),\n", " (695, np.float64(0.03734566872286401)),\n", " (696, np.float64(0.05237226614377158)),\n", " (697, np.float64(0.011401692977613393)),\n", " (698, np.float64(0.009687245558530464)),\n", " (699, np.float64(0.12530648498478347)),\n", " (700, np.float64(0.009099054369341325)),\n", " (701, np.float64(0.05864096359154978)),\n", " (702, np.float64(0.017696441246693336)),\n", " (703, np.float64(0.12110366748083307)),\n", " (704, np.float64(0.07347566833900478)),\n", " (705, np.float64(0.04316045784191231))]" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sorted(list(enumerate(similarity[0])))" ] }, { "cell_type": "code", "execution_count": 51, "id": "5e491353", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[(0, np.float64(0.9999999999999998)),\n", " (47, np.float64(0.2702651417103732)),\n", " (545, np.float64(0.2639619371123497)),\n", " (82, np.float64(0.23669374347400993)),\n", " (634, np.float64(0.23299389358170394)),\n", " (551, np.float64(0.2262639743141286)),\n", " (181, np.float64(0.22222254415660225)),\n", " (500, np.float64(0.21057743765309012)),\n", " (344, np.float64(0.20675540390453995)),\n", " (554, np.float64(0.20025063706783053)),\n", " (520, np.float64(0.19972624710300058)),\n", " (527, np.float64(0.19656287691544358)),\n", " (488, np.float64(0.19511819825564608)),\n", " (552, np.float64(0.1920889620576415)),\n", " (318, np.float64(0.19182230688281934)),\n", " (624, np.float64(0.1892531370760997)),\n", " (598, np.float64(0.189213677823462)),\n", " (60, np.float64(0.18908176672188648)),\n", " (622, np.float64(0.18571699439818884)),\n", " (647, np.float64(0.1841081817659337)),\n", " (546, np.float64(0.18408910419891056)),\n", " (202, np.float64(0.18049207281616433)),\n", " (541, np.float64(0.17990898085771034)),\n", " (309, np.float64(0.17415730924332484)),\n", " (588, np.float64(0.1738182944100774)),\n", " (537, np.float64(0.1700871998622835)),\n", " (544, np.float64(0.1672877700938274)),\n", " (66, np.float64(0.16566734565340116)),\n", " (118, np.float64(0.165272766123669)),\n", " (269, np.float64(0.1650329228149958)),\n", " (354, np.float64(0.16337845332530374)),\n", " (476, np.float64(0.16104067376144765)),\n", " (407, np.float64(0.16041182196659062)),\n", " (590, np.float64(0.16000267935045498)),\n", " (666, np.float64(0.1589387141616799)),\n", " (92, np.float64(0.15850821182810643)),\n", " (214, np.float64(0.15570975499937129)),\n", " (119, np.float64(0.15514318804365945)),\n", " (569, np.float64(0.15344079020689355)),\n", " (397, np.float64(0.1530551446766823)),\n", " (334, np.float64(0.15293362041446346)),\n", " (225, np.float64(0.1528098402276361)),\n", " (576, np.float64(0.15211972188253267)),\n", " (174, np.float64(0.14909595195082756)),\n", " (169, np.float64(0.14702846562277322)),\n", " (192, np.float64(0.14691166711955864)),\n", " (591, np.float64(0.14681485749917436)),\n", " (357, np.float64(0.1459525808785892)),\n", " (550, np.float64(0.1445684727872654)),\n", " (643, np.float64(0.1444555917585842)),\n", " (659, np.float64(0.14444516556944695)),\n", " (638, np.float64(0.14440017099395475)),\n", " (583, np.float64(0.14421330855040418)),\n", " (21, np.float64(0.14333792815336935)),\n", " (302, np.float64(0.1428139852200272)),\n", " (558, np.float64(0.1420165983985733)),\n", " (86, np.float64(0.1417627291694863)),\n", " (153, np.float64(0.14145186155692357)),\n", " (251, np.float64(0.13974513728492968)),\n", " (293, np.float64(0.13974104783917973)),\n", " (387, np.float64(0.1390419059870689)),\n", " (7, np.float64(0.13732869060263378)),\n", " (27, np.float64(0.13658680855472938)),\n", " (474, np.float64(0.13644383961641227)),\n", " (511, np.float64(0.13617057407600314)),\n", " (636, np.float64(0.13573542468856645)),\n", " (253, np.float64(0.1351060763800879)),\n", " (305, np.float64(0.13445376799866068)),\n", " (409, np.float64(0.1343973311768824)),\n", " (14, np.float64(0.13388864701187034)),\n", " (518, np.float64(0.13369059478865902)),\n", " (674, np.float64(0.13365875731715246)),\n", " (68, np.float64(0.13357242093379193)),\n", " (206, np.float64(0.1327813903167589)),\n", " (262, np.float64(0.13257638388225185)),\n", " (374, np.float64(0.13107651944057502)),\n", " (482, np.float64(0.13090710604063543)),\n", " (438, np.float64(0.130281708532021)),\n", " (197, np.float64(0.12871083086643306)),\n", " (606, np.float64(0.12858515029485706)),\n", " (420, np.float64(0.12822981990037824)),\n", " (562, np.float64(0.1279402426979562)),\n", " (65, np.float64(0.12680124740531368)),\n", " (682, np.float64(0.1265536444037226)),\n", " (286, np.float64(0.12548312467838352)),\n", " (699, np.float64(0.12530648498478347)),\n", " (640, np.float64(0.12522954271046702)),\n", " (410, np.float64(0.12508513698245888)),\n", " (326, np.float64(0.12468283384023092)),\n", " (312, np.float64(0.1238906533021012)),\n", " (660, np.float64(0.12340233502840114)),\n", " (216, np.float64(0.12338216998991305)),\n", " (557, np.float64(0.12333680291383342)),\n", " (434, np.float64(0.12307492189941618)),\n", " (219, np.float64(0.12177532243608828)),\n", " (29, np.float64(0.12167133598776536)),\n", " (101, np.float64(0.12114265984279052)),\n", " (703, np.float64(0.12110366748083307)),\n", " (627, np.float64(0.12024780353669523)),\n", " (303, np.float64(0.11979305199464946)),\n", " (255, np.float64(0.1184188929166314)),\n", " (385, np.float64(0.1178980615083171)),\n", " (243, np.float64(0.11784705785247843)),\n", " (512, np.float64(0.11784149206441577)),\n", " (19, np.float64(0.11706383185253948)),\n", " (40, np.float64(0.11679968613719668)),\n", " (87, np.float64(0.11661082872914152)),\n", " (489, np.float64(0.1149487959814155)),\n", " (604, np.float64(0.1144539948977886)),\n", " (495, np.float64(0.11400426236261282)),\n", " (362, np.float64(0.11362722122094872)),\n", " (515, np.float64(0.11277296885857815)),\n", " (16, np.float64(0.1115354275858341)),\n", " (465, np.float64(0.11122764671322921)),\n", " (117, np.float64(0.1103944810687539)),\n", " (649, np.float64(0.1099076405115528)),\n", " (73, np.float64(0.1096807501418389)),\n", " (366, np.float64(0.10941777035919222)),\n", " (494, np.float64(0.10853661984252007)),\n", " (650, np.float64(0.10850377176901972)),\n", " (205, np.float64(0.10849696385128585)),\n", " (470, np.float64(0.10800615252570414)),\n", " (612, np.float64(0.10725981836116358)),\n", " (151, np.float64(0.10684794535545848)),\n", " (630, np.float64(0.10596223905942811)),\n", " (79, np.float64(0.10519138203342883)),\n", " (324, np.float64(0.10467615354986062)),\n", " (84, np.float64(0.10397940924207362)),\n", " (194, np.float64(0.1035963528100001)),\n", " (459, np.float64(0.10354480865656568)),\n", " (149, np.float64(0.10341190148072846)),\n", " (437, np.float64(0.1033826953037451)),\n", " (578, np.float64(0.10307399310158656)),\n", " (230, np.float64(0.10266993316420167)),\n", " (611, np.float64(0.10266590131312461)),\n", " (327, np.float64(0.10266459423639845)),\n", " (1, np.float64(0.10255024829874466)),\n", " (432, np.float64(0.10228551050235933)),\n", " (261, np.float64(0.10174252819190155)),\n", " (402, np.float64(0.10135299399598713)),\n", " (323, np.float64(0.10084626149563478)),\n", " (421, np.float64(0.0999877199669616)),\n", " (670, np.float64(0.09993168845101595)),\n", " (137, np.float64(0.09974980034668827)),\n", " (431, np.float64(0.09923541776574221)),\n", " (461, np.float64(0.09919937023309428)),\n", " (152, np.float64(0.09898722239993361)),\n", " (615, np.float64(0.0987294045857185)),\n", " (628, np.float64(0.09840359079895453)),\n", " (620, np.float64(0.09797466122629746)),\n", " (195, np.float64(0.09794374510256892)),\n", " (363, np.float64(0.09791273187403501)),\n", " (307, np.float64(0.09790644477767069)),\n", " (48, np.float64(0.09779122591837028)),\n", " (574, np.float64(0.09772941568150427)),\n", " (373, np.float64(0.09754449459555777)),\n", " (228, np.float64(0.09746696979819942)),\n", " (13, np.float64(0.09673734976610586)),\n", " (183, np.float64(0.09673267751838878)),\n", " (531, np.float64(0.09596456280564838)),\n", " (565, np.float64(0.09532519178944057)),\n", " (645, np.float64(0.09508161331593905)),\n", " (36, np.float64(0.09495937740802216)),\n", " (672, np.float64(0.09488374038474037)),\n", " (155, np.float64(0.09428288870384942)),\n", " (514, np.float64(0.0928435169211848)),\n", " (211, np.float64(0.09203038690315052)),\n", " (377, np.float64(0.09132921952528268)),\n", " (684, np.float64(0.09095705260744957)),\n", " (348, np.float64(0.09014973218560088)),\n", " (440, np.float64(0.09005001295005992)),\n", " (400, np.float64(0.08996912406728536)),\n", " (198, np.float64(0.08992738703666601)),\n", " (439, np.float64(0.08988894455657523)),\n", " (429, np.float64(0.08982750671022352)),\n", " (50, np.float64(0.08958834926611466)),\n", " (316, np.float64(0.08951389572154368)),\n", " (365, np.float64(0.0891233745026412)),\n", " (665, np.float64(0.08904275766583061)),\n", " (570, np.float64(0.0885630163776942)),\n", " (44, np.float64(0.08785938150991274)),\n", " (217, np.float64(0.08784690368235953)),\n", " (275, np.float64(0.08781992709390865)),\n", " (24, np.float64(0.08723968326958673)),\n", " (648, np.float64(0.08704223712018071)),\n", " (281, np.float64(0.08673968616705958)),\n", " (422, np.float64(0.08642894687915843)),\n", " (296, np.float64(0.08608600626732467)),\n", " (513, np.float64(0.08588206473402643)),\n", " (560, np.float64(0.08563805381851426)),\n", " (540, np.float64(0.08541217689607684)),\n", " (331, np.float64(0.08474055728984814)),\n", " (43, np.float64(0.08471898090442946)),\n", " (270, np.float64(0.08466191294337998)),\n", " (245, np.float64(0.08422557655984436)),\n", " (215, np.float64(0.08420691059370962)),\n", " (683, np.float64(0.08418288167449578)),\n", " (689, np.float64(0.0839284865111645)),\n", " (42, np.float64(0.08354155383339157)),\n", " (88, np.float64(0.08331012208964667)),\n", " (15, np.float64(0.0830311169181103)),\n", " (250, np.float64(0.08294512991462386)),\n", " (536, np.float64(0.08280451731096075)),\n", " (584, np.float64(0.08272478073987326)),\n", " (416, np.float64(0.0824612198578452)),\n", " (6, np.float64(0.08216491130000354)),\n", " (218, np.float64(0.08205944603394638)),\n", " (517, np.float64(0.08200947294838494)),\n", " (686, np.float64(0.08143881222401984)),\n", " (121, np.float64(0.08139488796880032)),\n", " (481, np.float64(0.08100800937525751)),\n", " (462, np.float64(0.08091989315700655)),\n", " (616, np.float64(0.0807748212690039)),\n", " (522, np.float64(0.08062879942666365)),\n", " (632, np.float64(0.0805438980307519)),\n", " (442, np.float64(0.08033435626539932)),\n", " (542, np.float64(0.08007284499901246)),\n", " (605, np.float64(0.08001595368794218)),\n", " (364, np.float64(0.07999692625971765)),\n", " (39, np.float64(0.07984012108659384)),\n", " (33, np.float64(0.07965814289647455)),\n", " (276, np.float64(0.07885279086963545)),\n", " (58, np.float64(0.07877058635507732)),\n", " (301, np.float64(0.07866868132289853)),\n", " (22, np.float64(0.07847534327232125)),\n", " (654, np.float64(0.07845404559691257)),\n", " (353, np.float64(0.07843565693314272)),\n", " (244, np.float64(0.07839488163675291)),\n", " (158, np.float64(0.07835976130061303)),\n", " (690, np.float64(0.07785800873431292)),\n", " (594, np.float64(0.07725115117942094)),\n", " (330, np.float64(0.07652764821891074)),\n", " (631, np.float64(0.07617194789896939)),\n", " (28, np.float64(0.07600327535501017)),\n", " (231, np.float64(0.0757441443938586)),\n", " (358, np.float64(0.07561631141753603)),\n", " (472, np.float64(0.0755468596127809)),\n", " (164, np.float64(0.07477661367406771)),\n", " (595, np.float64(0.07464762808145006)),\n", " (123, np.float64(0.07458202717929566)),\n", " (227, np.float64(0.07458136399603107)),\n", " (310, np.float64(0.07437756212042423)),\n", " (254, np.float64(0.07423488726781508)),\n", " (112, np.float64(0.07422249010392888)),\n", " (664, np.float64(0.07391777683093743)),\n", " (564, np.float64(0.07352435567112062)),\n", " (458, np.float64(0.07348190409223959)),\n", " (704, np.float64(0.07347566833900478)),\n", " (504, np.float64(0.07276403383736725)),\n", " (187, np.float64(0.07262017448772083)),\n", " (131, np.float64(0.07258934796997447)),\n", " (506, np.float64(0.07242165076731459)),\n", " (538, np.float64(0.07213921021695388)),\n", " (567, np.float64(0.0719421185191427)),\n", " (355, np.float64(0.07161075491687474)),\n", " (692, np.float64(0.07151793939760115)),\n", " (484, np.float64(0.07150547342980032)),\n", " (396, np.float64(0.07136276113078666)),\n", " (535, np.float64(0.07052240553428667)),\n", " (418, np.float64(0.07025002832914887)),\n", " (597, np.float64(0.07021576771146076)),\n", " (26, np.float64(0.07009814362931202)),\n", " (322, np.float64(0.0700882246357741)),\n", " (667, np.float64(0.06947573726333098)),\n", " (549, np.float64(0.0691101496608291)),\n", " (77, np.float64(0.06876130890656589)),\n", " (516, np.float64(0.06868983304237651)),\n", " (376, np.float64(0.06829903941402894)),\n", " (241, np.float64(0.06806264765162154)),\n", " (271, np.float64(0.06795352889900172)),\n", " (507, np.float64(0.06790897506872169)),\n", " (11, np.float64(0.06766486753662343)),\n", " (51, np.float64(0.06748675491514017)),\n", " (525, np.float64(0.06738056011305654)),\n", " (677, np.float64(0.0672128392842741)),\n", " (90, np.float64(0.06715432766232284)),\n", " (347, np.float64(0.06681045925540752)),\n", " (389, np.float64(0.06671644037106779)),\n", " (69, np.float64(0.06615478064452682)),\n", " (196, np.float64(0.06609996896203728)),\n", " (582, np.float64(0.06572303470837207)),\n", " (596, np.float64(0.06546695823953794)),\n", " (300, np.float64(0.06541867556977009)),\n", " (109, np.float64(0.06524573363186935)),\n", " (447, np.float64(0.06523041320455897)),\n", " (289, np.float64(0.06520605980064662)),\n", " (490, np.float64(0.06513046875777172)),\n", " (104, np.float64(0.06510721558252526)),\n", " (534, np.float64(0.06476148889541151)),\n", " (386, np.float64(0.06468143253238315)),\n", " (641, np.float64(0.06455010070487521)),\n", " (232, np.float64(0.06426525769208898)),\n", " (491, np.float64(0.06401961292305569)),\n", " (212, np.float64(0.06388401351716998)),\n", " (423, np.float64(0.0635519690782283)),\n", " (528, np.float64(0.06306425554305625)),\n", " (581, np.float64(0.06303898971663935)),\n", " (120, np.float64(0.06237453600241552)),\n", " (350, np.float64(0.06206857320564754)),\n", " (85, np.float64(0.06167753120046458)),\n", " (23, np.float64(0.06150451339525138)),\n", " (486, np.float64(0.06143184266443724)),\n", " (444, np.float64(0.061398875647666676)),\n", " (608, np.float64(0.06129105448105361)),\n", " (530, np.float64(0.06123118935155921)),\n", " (381, np.float64(0.06113178628791212)),\n", " (469, np.float64(0.060877194204984726)),\n", " (170, np.float64(0.06087281632872059)),\n", " (291, np.float64(0.06069830203664196)),\n", " (398, np.float64(0.06039873575147915)),\n", " (49, np.float64(0.060160461842087495)),\n", " (369, np.float64(0.060039300152930415)),\n", " (147, np.float64(0.05995157134958024)),\n", " (190, np.float64(0.05994663767295999)),\n", " (593, np.float64(0.05940546334243634)),\n", " (125, np.float64(0.059363300295016304)),\n", " (207, np.float64(0.059152881703632795)),\n", " (349, np.float64(0.05914734917065386)),\n", " (625, np.float64(0.05894189200911533)),\n", " (701, np.float64(0.05864096359154978)),\n", " (103, np.float64(0.058191840680734276)),\n", " (501, np.float64(0.058097069301565475)),\n", " (675, np.float64(0.057940637804840725)),\n", " (392, np.float64(0.057620863815487075)),\n", " (524, np.float64(0.057560148077814344)),\n", " (371, np.float64(0.05755407693373189)),\n", " (579, np.float64(0.057157891413611744)),\n", " (671, np.float64(0.05711356172333468)),\n", " (41, np.float64(0.056912401804646934)),\n", " (467, np.float64(0.05666140304625101)),\n", " (122, np.float64(0.056554138733275305)),\n", " (56, np.float64(0.05629066845910846)),\n", " (175, np.float64(0.05606788035530558)),\n", " (547, np.float64(0.05600272988869)),\n", " (264, np.float64(0.055102704646119355)),\n", " (45, np.float64(0.05491435163039676)),\n", " (46, np.float64(0.054850498513470236)),\n", " (479, np.float64(0.05438295377092604)),\n", " (601, np.float64(0.05437622462310082)),\n", " (485, np.float64(0.05428487095514969)),\n", " (229, np.float64(0.05416091103251691)),\n", " (186, np.float64(0.05400331245399732)),\n", " (208, np.float64(0.053729841666378134)),\n", " (4, np.float64(0.053672244225442485)),\n", " (623, np.float64(0.053445774200822666)),\n", " (441, np.float64(0.05332049434044375)),\n", " (107, np.float64(0.05273164983675109)),\n", " (505, np.float64(0.05264856975654457)),\n", " (453, np.float64(0.05261953990010256)),\n", " (696, np.float64(0.05237226614377158)),\n", " (427, np.float64(0.0522373263993224)),\n", " (59, np.float64(0.052194792200893965)),\n", " (646, np.float64(0.05179020017229585)),\n", " (487, np.float64(0.051616531477964966)),\n", " (556, np.float64(0.05144282019851702)),\n", " (466, np.float64(0.051434806536338154)),\n", " (203, np.float64(0.05141892092902459)),\n", " (17, np.float64(0.05100410510067514)),\n", " (406, np.float64(0.05021880312673623)),\n", " (154, np.float64(0.05007429159938883)),\n", " (602, np.float64(0.04932819154504025)),\n", " (256, np.float64(0.049300912125160704)),\n", " (457, np.float64(0.048593102089385304)),\n", " (259, np.float64(0.04815971759587031)),\n", " (306, np.float64(0.04809338200514574)),\n", " (277, np.float64(0.04799058127298857)),\n", " (475, np.float64(0.04796762686649386)),\n", " (360, np.float64(0.047796293241950796)),\n", " (213, np.float64(0.04773328410790857)),\n", " (204, np.float64(0.047717402129725514)),\n", " (102, np.float64(0.04768602689229997)),\n", " (106, np.float64(0.047670497142785574)),\n", " (464, np.float64(0.04757132169040053)),\n", " (128, np.float64(0.04734092759216691)),\n", " (426, np.float64(0.04706590154362337)),\n", " (249, np.float64(0.046982457315643385)),\n", " (496, np.float64(0.046392498261486066)),\n", " (580, np.float64(0.046000562607200646)),\n", " (443, np.float64(0.045977952103493924)),\n", " (637, np.float64(0.045785523306335146)),\n", " (610, np.float64(0.04550867061591275)),\n", " (280, np.float64(0.04549923467689111)),\n", " (450, np.float64(0.04542765998492866)),\n", " (34, np.float64(0.04522616573040869)),\n", " (75, np.float64(0.04521795287053612)),\n", " (160, np.float64(0.04515898041752436)),\n", " (267, np.float64(0.04504597870526374)),\n", " (53, np.float64(0.044680983219421905)),\n", " (297, np.float64(0.04433882752568145)),\n", " (575, np.float64(0.044043586511889346)),\n", " (502, np.float64(0.043491562429456586)),\n", " (425, np.float64(0.04335826491498011)),\n", " (705, np.float64(0.04316045784191231)),\n", " (64, np.float64(0.04279501979786338)),\n", " (658, np.float64(0.04223674045619745)),\n", " (688, np.float64(0.042188025333763236)),\n", " (586, np.float64(0.04203701143606598)),\n", " (548, np.float64(0.04133585716291763)),\n", " (317, np.float64(0.04005551020725377)),\n", " (163, np.float64(0.04003333547158616)),\n", " (651, np.float64(0.03954864515701187)),\n", " (346, np.float64(0.03902659506471766)),\n", " (652, np.float64(0.03836309816637586)),\n", " (124, np.float64(0.03771888280719047)),\n", " (114, np.float64(0.03734566872286401)),\n", " (695, np.float64(0.03734566872286401)),\n", " (226, np.float64(0.03709430441334803)),\n", " (224, np.float64(0.03671505063990275)),\n", " (9, np.float64(0.03667590746512177)),\n", " (189, np.float64(0.036498718026030004)),\n", " (178, np.float64(0.03643816906953526)),\n", " (233, np.float64(0.03601739518550193)),\n", " (328, np.float64(0.035498355256648746)),\n", " (529, np.float64(0.03499381360818396)),\n", " (268, np.float64(0.03482458685305275)),\n", " (209, np.float64(0.034785003361519164)),\n", " (655, np.float64(0.03455547895208963)),\n", " (566, np.float64(0.03421894679431926)),\n", " (127, np.float64(0.03355602562283)),\n", " (80, np.float64(0.03349456939792139)),\n", " (238, np.float64(0.03349154464789058)),\n", " (93, np.float64(0.03280520241000348)),\n", " (8, np.float64(0.03261686350494277)),\n", " (177, np.float64(0.03199916313406436)),\n", " (136, np.float64(0.030678189040978528)),\n", " (321, np.float64(0.03054044240047009)),\n", " (656, np.float64(0.030076807297674774)),\n", " (272, np.float64(0.029876534978291205)),\n", " (63, np.float64(0.029845724311982225)),\n", " (126, np.float64(0.02955369248311012)),\n", " (339, np.float64(0.02946442510264468)),\n", " (298, np.float64(0.029430847399312027)),\n", " (359, np.float64(0.029397384230560795)),\n", " (424, np.float64(0.028830240654024085)),\n", " (145, np.float64(0.028808272598853126)),\n", " (283, np.float64(0.028806369616477166)),\n", " (662, np.float64(0.028443700563612766)),\n", " (642, np.float64(0.02817521704586765)),\n", " (141, np.float64(0.028108399645259814)),\n", " (108, np.float64(0.02810009706063171)),\n", " (74, np.float64(0.02806606106883051)),\n", " (379, np.float64(0.02781406274224919)),\n", " (5, np.float64(0.027749013024662858)),\n", " (150, np.float64(0.027667475691473428)),\n", " (172, np.float64(0.027418756526771074)),\n", " (97, np.float64(0.02687778911799567)),\n", " (167, np.float64(0.026674838717939867)),\n", " (329, np.float64(0.026674838717939867)),\n", " (503, np.float64(0.02646255704581015)),\n", " (258, np.float64(0.026330228561191004)),\n", " (76, np.float64(0.02613276804655889)),\n", " (38, np.float64(0.026104653172312028)),\n", " (613, np.float64(0.026053401473749117)),\n", " (314, np.float64(0.025808491020821493)),\n", " (95, np.float64(0.025797824097510556)),\n", " (171, np.float64(0.025783211586063344)),\n", " (414, np.float64(0.025480338679592467)),\n", " (18, np.float64(0.025177841632809915)),\n", " (599, np.float64(0.02494136129371724)),\n", " (657, np.float64(0.024840764583155147)),\n", " (288, np.float64(0.02482518222135733)),\n", " (559, np.float64(0.024720785609384784)),\n", " (383, np.float64(0.024712941476041382)),\n", " (236, np.float64(0.024635927968282654)),\n", " (653, np.float64(0.02463490862737704)),\n", " (200, np.float64(0.024601653277066596)),\n", " (220, np.float64(0.024337026385897676)),\n", " (509, np.float64(0.024318094429406693)),\n", " (135, np.float64(0.02428501142412964)),\n", " (285, np.float64(0.024141217209915328)),\n", " (140, np.float64(0.024108621631248803)),\n", " (693, np.float64(0.02407593195976403)),\n", " (553, np.float64(0.023933399289577127)),\n", " (561, np.float64(0.023634261138311616)),\n", " (411, np.float64(0.02329035016031528)),\n", " (10, np.float64(0.02322418425912186)),\n", " (533, np.float64(0.023175154774464087)),\n", " (607, np.float64(0.023066582966561253)),\n", " (446, np.float64(0.023049037833599993)),\n", " (445, np.float64(0.023007092325074995)),\n", " (395, np.float64(0.02297481006625077)),\n", " (568, np.float64(0.022970785411852147)),\n", " (521, np.float64(0.0228620664348094)),\n", " (587, np.float64(0.022760772453994885)),\n", " (319, np.float64(0.02267512161790004)),\n", " (393, np.float64(0.02266096293926825)),\n", " (299, np.float64(0.022424955017243866)),\n", " (184, np.float64(0.02190023295408395)),\n", " (532, np.float64(0.021801683645525486)),\n", " (333, np.float64(0.021774817728178283)),\n", " (98, np.float64(0.02175821065382328)),\n", " (372, np.float64(0.021668631362692693)),\n", " (419, np.float64(0.021636698437203145)),\n", " (617, np.float64(0.02159225803102367)),\n", " (338, np.float64(0.021530886296301118)),\n", " (239, np.float64(0.021353685011361416)),\n", " (663, np.float64(0.021320163671431275)),\n", " (148, np.float64(0.021276714965680187)),\n", " (279, np.float64(0.021238372796229556)),\n", " (110, np.float64(0.021163446843373374)),\n", " (368, np.float64(0.02115842407200956)),\n", " (96, np.float64(0.02114858980511902)),\n", " (111, np.float64(0.02097867986921867)),\n", " (510, np.float64(0.020935646634428463)),\n", " (609, np.float64(0.02090768582511093)),\n", " (193, np.float64(0.020860053643757807)),\n", " (619, np.float64(0.020846396819831855)),\n", " (12, np.float64(0.020839782065795794)),\n", " (341, np.float64(0.020767833514212724)),\n", " (678, np.float64(0.020669978441948792)),\n", " (247, np.float64(0.02040796206066411)),\n", " (235, np.float64(0.02033558874805688)),\n", " (242, np.float64(0.020321161226731627)),\n", " (436, np.float64(0.020281245334279798)),\n", " (284, np.float64(0.020221447157344582)),\n", " (185, np.float64(0.020135489410098205)),\n", " (352, np.float64(0.020059585724360268)),\n", " (412, np.float64(0.019872703940133213)),\n", " (294, np.float64(0.019788442258843547)),\n", " (180, np.float64(0.01962921144060071)),\n", " (260, np.float64(0.019598256153707194)),\n", " (54, np.float64(0.019208718234636258)),\n", " (448, np.float64(0.01915362558614925)),\n", " (589, np.float64(0.019099672781938637)),\n", " (621, np.float64(0.019067312487474012)),\n", " (240, np.float64(0.019033695446023926)),\n", " (417, np.float64(0.01902896010686717)),\n", " (166, np.float64(0.018873932015163516)),\n", " (573, np.float64(0.018786559700050654)),\n", " (265, np.float64(0.018611497829688243)),\n", " (304, np.float64(0.01858409288796079)),\n", " (680, np.float64(0.018394279624570017)),\n", " (332, np.float64(0.018319772326554337)),\n", " (497, np.float64(0.018252769789423258)),\n", " (37, np.float64(0.018230696811058135)),\n", " (144, np.float64(0.0181287703514146)),\n", " (361, np.float64(0.018072383204619496)),\n", " (384, np.float64(0.018015801292409934)),\n", " (370, np.float64(0.017971540540139944)),\n", " (702, np.float64(0.017696441246693336)),\n", " (478, np.float64(0.017598641856748937)),\n", " (435, np.float64(0.01758928833928951)),\n", " (382, np.float64(0.017572862308732076)),\n", " (113, np.float64(0.017527779718968118)),\n", " (543, np.float64(0.017396246144706713)),\n", " (320, np.float64(0.017303468493582226)),\n", " (644, np.float64(0.017210453378914768)),\n", " (460, np.float64(0.0171880657878069)),\n", " (600, np.float64(0.017050265851722604)),\n", " (139, np.float64(0.016901518597837405)),\n", " (325, np.float64(0.016834621675675482)),\n", " (404, np.float64(0.016763442237401817)),\n", " (130, np.float64(0.016719816747289874)),\n", " (694, np.float64(0.016351262734144115)),\n", " (508, np.float64(0.016265641643564675)),\n", " (257, np.float64(0.016216682151444957)),\n", " (618, np.float64(0.016142753550857224)),\n", " (100, np.float64(0.016016629607635186)),\n", " (116, np.float64(0.01579666260459111)),\n", " (234, np.float64(0.01559751952620105)),\n", " (35, np.float64(0.01556270914112474)),\n", " (345, np.float64(0.015542921836058245)),\n", " (401, np.float64(0.015459465622161536)),\n", " (380, np.float64(0.015333681815045101)),\n", " (577, np.float64(0.015222501642298877)),\n", " (182, np.float64(0.015158449197584845)),\n", " (661, np.float64(0.015102006885841438)),\n", " (555, np.float64(0.015076532862248153)),\n", " (626, np.float64(0.014881608648267744)),\n", " (31, np.float64(0.01473221255132234)),\n", " (278, np.float64(0.014679640011206505)),\n", " (168, np.float64(0.01432863977616057)),\n", " (156, np.float64(0.014112489355409683)),\n", " (81, np.float64(0.013634576553468258)),\n", " (78, np.float64(0.013316271087745269)),\n", " (454, np.float64(0.01317087876205714)),\n", " (162, np.float64(0.012814117802391826)),\n", " (295, np.float64(0.012608239194211564)),\n", " (62, np.float64(0.012406560213354146)),\n", " (252, np.float64(0.012345246102533871)),\n", " (2, np.float64(0.012208555646509366)),\n", " (165, np.float64(0.012179056920074677)),\n", " (499, np.float64(0.011952011165403655)),\n", " (342, np.float64(0.011948245768325256)),\n", " (292, np.float64(0.011778242975805127)),\n", " (539, np.float64(0.011722012964226876)),\n", " (199, np.float64(0.011474570339750256)),\n", " (697, np.float64(0.011401692977613393)),\n", " (188, np.float64(0.011116365315772406)),\n", " (413, np.float64(0.011056735115042383)),\n", " (563, np.float64(0.01083152786792504)),\n", " (635, np.float64(0.01073641547918824)),\n", " (94, np.float64(0.010689154840164533)),\n", " (337, np.float64(0.010632508151830204)),\n", " (668, np.float64(0.010607867311865709)),\n", " (629, np.float64(0.010481255663709239)),\n", " (313, np.float64(0.010423913217045038)),\n", " (129, np.float64(0.010066425112509755)),\n", " (698, np.float64(0.009687245558530464)),\n", " (343, np.float64(0.009536746594659161)),\n", " (673, np.float64(0.009489432211152974)),\n", " (700, np.float64(0.009099054369341325)),\n", " (415, np.float64(0.0089604367821904)),\n", " (282, np.float64(0.00885998445194921)),\n", " (159, np.float64(0.00882242400686552)),\n", " (430, np.float64(0.00875634332679306)),\n", " (89, np.float64(0.00850895140653615)),\n", " (394, np.float64(0.008448763927099017)),\n", " (30, np.float64(0.007680459111722776)),\n", " (685, np.float64(0.007305889033771798)),\n", " (483, np.float64(0.00581843892000093)),\n", " (57, np.float64(0.005579638588454276)),\n", " (463, np.float64(0.0035883533320389396)),\n", " (221, np.float64(0.00272862336930817)),\n", " (614, np.float64(0.0017370894470936135)),\n", " (3, np.float64(0.0)),\n", " (20, np.float64(0.0)),\n", " (25, np.float64(0.0)),\n", " (32, np.float64(0.0)),\n", " (52, np.float64(0.0)),\n", " (55, np.float64(0.0)),\n", " (61, np.float64(0.0)),\n", " (67, np.float64(0.0)),\n", " (70, np.float64(0.0)),\n", " (71, np.float64(0.0)),\n", " (72, np.float64(0.0)),\n", " (83, np.float64(0.0)),\n", " (91, np.float64(0.0)),\n", " (99, np.float64(0.0)),\n", " (105, np.float64(0.0)),\n", " (115, np.float64(0.0)),\n", " (132, np.float64(0.0)),\n", " (133, np.float64(0.0)),\n", " (134, np.float64(0.0)),\n", " (138, np.float64(0.0)),\n", " (142, np.float64(0.0)),\n", " (143, np.float64(0.0)),\n", " (146, np.float64(0.0)),\n", " (157, np.float64(0.0)),\n", " (161, np.float64(0.0)),\n", " (173, np.float64(0.0)),\n", " (176, np.float64(0.0)),\n", " (179, np.float64(0.0)),\n", " (191, np.float64(0.0)),\n", " (201, np.float64(0.0)),\n", " (210, np.float64(0.0)),\n", " (222, np.float64(0.0)),\n", " (223, np.float64(0.0)),\n", " (237, np.float64(0.0)),\n", " (246, np.float64(0.0)),\n", " (248, np.float64(0.0)),\n", " (263, np.float64(0.0)),\n", " (266, np.float64(0.0)),\n", " (273, np.float64(0.0)),\n", " (274, np.float64(0.0)),\n", " (287, np.float64(0.0)),\n", " (290, np.float64(0.0)),\n", " (308, np.float64(0.0)),\n", " (311, np.float64(0.0)),\n", " (315, np.float64(0.0)),\n", " (335, np.float64(0.0)),\n", " (336, np.float64(0.0)),\n", " (340, np.float64(0.0)),\n", " (351, np.float64(0.0)),\n", " (356, np.float64(0.0)),\n", " (367, np.float64(0.0)),\n", " (375, np.float64(0.0)),\n", " (378, np.float64(0.0)),\n", " (388, np.float64(0.0)),\n", " (390, np.float64(0.0)),\n", " (391, np.float64(0.0)),\n", " (399, np.float64(0.0)),\n", " (403, np.float64(0.0)),\n", " (405, np.float64(0.0)),\n", " (408, np.float64(0.0)),\n", " (428, np.float64(0.0)),\n", " (433, np.float64(0.0)),\n", " (449, np.float64(0.0)),\n", " (451, np.float64(0.0)),\n", " (452, np.float64(0.0)),\n", " (455, np.float64(0.0)),\n", " (456, np.float64(0.0)),\n", " (468, np.float64(0.0)),\n", " (471, np.float64(0.0)),\n", " (473, np.float64(0.0)),\n", " (477, np.float64(0.0)),\n", " (480, np.float64(0.0)),\n", " (492, np.float64(0.0)),\n", " (493, np.float64(0.0)),\n", " (498, np.float64(0.0)),\n", " (519, np.float64(0.0)),\n", " (523, np.float64(0.0)),\n", " (526, np.float64(0.0)),\n", " (571, np.float64(0.0)),\n", " (572, np.float64(0.0)),\n", " (585, np.float64(0.0)),\n", " (592, np.float64(0.0)),\n", " (603, np.float64(0.0)),\n", " (633, np.float64(0.0)),\n", " (639, np.float64(0.0)),\n", " (669, np.float64(0.0)),\n", " (676, np.float64(0.0)),\n", " (679, np.float64(0.0)),\n", " (681, np.float64(0.0)),\n", " (687, np.float64(0.0)),\n", " (691, np.float64(0.0))]" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sorted(list(enumerate(similarity[0])), key=lambda x: x[1], reverse=True)" ] }, { "cell_type": "code", "execution_count": 52, "id": "6891fe27", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[(47, np.float64(0.2702651417103732)),\n", " (545, np.float64(0.2639619371123497)),\n", " (82, np.float64(0.23669374347400993)),\n", " (634, np.float64(0.23299389358170394)),\n", " (551, np.float64(0.2262639743141286))]" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sorted(list(enumerate(similarity[0])), key=lambda x: x[1], reverse=True)[1:6]" ] }, { "cell_type": "code", "execution_count": 53, "id": "45e038bf", "metadata": {}, "outputs": [], "source": [ "def dummy2(book_name):\n", " # fetch index of the book_name\n", " book_index = np.where(pt.index == book_name)[0][0]\n", " simmilar_items = sorted(list(enumerate(similarity[book_index])), key=lambda x: x[1], reverse=True)[1:6]\n", " \n", " lists = []\n", " for item in simmilar_items:\n", " print(item[0])" ] }, { "cell_type": "code", "execution_count": 54, "id": "84cdcf5c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "203\n", "577\n", "666\n", "575\n", "198\n" ] } ], "source": [ "dummy2(\"2nd Chance\")" ] }, { "cell_type": "markdown", "id": "6575e2d4", "metadata": {}, "source": [ "#### Fetch name of the recommend book" ] }, { "cell_type": "code", "execution_count": 55, "id": "aa913f5e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['1984', '1st to Die: A Novel', '2nd Chance', '4 Blondes',\n", " 'A Bend in the Road', 'A Case of Need',\n", " 'A Child Called \\It\\\": One Child's Courage to Survive\"',\n", " 'A Civil Action', 'A Day Late and a Dollar Short', 'A Fine Balance',\n", " ...\n", " 'Winter Solstice', 'Wish You Well', 'Without Remorse',\n", " 'Wizard and Glass (The Dark Tower, Book 4)', 'Wuthering Heights',\n", " 'Year of Wonders', 'You Belong To Me',\n", " 'Zen and the Art of Motorcycle Maintenance: An Inquiry into Values',\n", " 'Zoya', '\\O\\\" Is for Outlaw\"'],\n", " dtype='object', name='book_name', length=706)" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pt.index" ] }, { "cell_type": "code", "execution_count": 56, "id": "0c26a2f7", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'Animal Farm'" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pt.index[47]" ] }, { "cell_type": "code", "execution_count": 57, "id": "85cea310", "metadata": {}, "outputs": [], "source": [ "def recommend(book_name):\n", " # fetch index of the book_name\n", " book_index = np.where(pt.index == book_name)[0][0]\n", " simmilar_items = sorted(list(enumerate(similarity[book_index])), key=lambda x: x[1], reverse=True)[1:6]\n", " \n", " recommendations = []\n", " \n", " for item in simmilar_items:\n", " recommendations.append(pt.index[item[0]])\n", " return recommendations" ] }, { "cell_type": "code", "execution_count": 58, "id": "f617c7ed", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['A Walk to Remember',\n", " 'The Rescue',\n", " 'One Door Away from Heaven',\n", " 'Toxin',\n", " 'The Five People You Meet in Heaven']" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "recommend(\"The Notebook\")" ] }, { "cell_type": "code", "execution_count": 59, "id": "59b09c9b", "metadata": {}, "outputs": [], "source": [ "model_data = {\n", " \"data\": books,\n", " \"similarity\": similarity,\n", " \"pivot_index\": pt.index.tolist() # <-- save only books used for similarity\n", "}" ] }, { "cell_type": "code", "execution_count": 60, "id": "7007fc38", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model Saved Successfully!\n" ] } ], "source": [ "import joblib\n", "joblib.dump(model_data, \"model.pkl\")\n", "print(\"Model Saved Successfully!\")" ] }, { "cell_type": "code", "execution_count": 61, "id": "519ce0cf", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Prediction from loaded model: ['Dolores Claiborne', 'Invasion', 'Watchers', 'Acceptable Risk', 'Vector']\n", "Dolores Claiborne\n", "Invasion\n", "Watchers\n", "Acceptable Risk\n", "Vector\n" ] } ], "source": [ "loaded_model = joblib.load(\"model.pkl\")\n", "loaded_model_prediction = recommend(\"Toxin\")\n", "print(f\"Prediction from loaded model: {loaded_model_prediction}\")\n", "\n", "for book in loaded_model_prediction:\n", " print(book)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.9" } }, "nbformat": 4, "nbformat_minor": 5 }