diff --git a/README.md b/README.md index 70c3be2c..ec52ba7e 100644 --- a/README.md +++ b/README.md @@ -11,8 +11,8 @@ We are releasing this code to the public as a tool we expect others to use and a ### Chapter 1: Using DANDI/getting data - [Downloading NWB files from DANDI](https://github.com/AllenInstitute/openscope_databook/blob/main/docs/basics/download_nwb.ipynb) - [Reading NWB files](https://github.com/AllenInstitute/openscope_databook/blob/main/docs/basics/read_nwb.ipynb) -- [Streaming NWB files from DANDI](https://github.com/AllenInstitute/openscope_databook/blob/main/docs/basics/stream_nwb.ipynb) - [Exploring NWB files with NWBWidgets](https://github.com/AllenInstitute/openscope_databook/blob/main/docs/basics/use_nwbwidgets.ipynb) +- [Streaming NWB files from DANDI](https://github.com/AllenInstitute/openscope_databook/blob/main/docs/basics/stream_nwb.ipynb) - [Querying metadata across sessions from DANDI](https://github.com/AllenInstitute/openscope_databook/blob/main/docs/basics/get_dandiset_metadata.ipynb) ### Chapter 2: Data visualization diff --git a/docs/basics/download_nwb.ipynb b/docs/basics/download_nwb.ipynb index 6fbd4367..9cf30bee 100644 --- a/docs/basics/download_nwb.ipynb +++ b/docs/basics/download_nwb.ipynb @@ -73,6 +73,13 @@ "id": "a309c067", "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "A newer version (0.55.1) of dandi/dandi-cli is available. You are using 0.46.6\n" + ] + }, { "name": "stdout", "output_type": "stream", @@ -192,7 +199,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.10" + "version": "3.9.13" } }, "nbformat": 4, diff --git a/docs/basics/intro_information.ipynb b/docs/basics/intro_information.ipynb new file mode 100644 index 00000000..0b5f4e08 --- /dev/null +++ b/docs/basics/intro_information.ipynb @@ -0,0 +1,61 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Preliminary Knowledge" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### DANDI\n", + "Throughout these notebooks, we utilize a platform called [DANDI](https://dandiarchive.org/) (Data Archive and Neurophysiology Imaging). DANDI is a platform that allows open-source data sharing and archiving add acts as a centralized repository where research can deposit data. While we have provided some pre-loaded data from DANDI in the notebooks, the purpose of this databooks is to take any dataset off DANDI and reproduce the analysis within these notebooks. You should familiarize youself with DANDI before running through the notebooks, and explore how Dandisets are organized on the website. \n", + "\n", + "One step that may be confusing when running through the notebooks for the first time is finding a filepath for a certain file within a Dandiset. These are the steps for accessing a filepath you can try out yourself: \n", + "1) Click [here](https://dandiarchive.org/dandiset/000535?search=allen%20institute%202%20photon&pos=2) to access a Dandiset uploaded by researchers at the Allen Institute. \n", + "2) On the right side of the page, click the \"files\" tab.\n", + "3) You will now see a list of folders. Click on any folder. \n", + "4) Once you have entered the folder, you will see a list of files with 4 blue buttons to the right of each file name. Select any file you would like and click the \"i\" icon in the blue circle. \n", + "5) This will pull up a new tab with a bunch of red code. At the top of the code, you will see `\"id\" :`, `\"path\" :`, and `\"access\":`. Copy the code to the right of `\"path\" :`. It will look like this `\"sub-460654/sub-460654_ses-20190611T181840_behavior+ophys.nwb\"`. This is the filepath you will insert in various notebooks when it asks for `dandi_filepath`. \n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### NWB FILES\n", + "NWB (Neurodata Without Borders) files utilize a standardized format for storing and sharing neurophysiology data. Their purpose is to address the need for a universal data format that makes analysis accessible across different experimental techniques. NWB files contain raw data, processed data, analysis results, and metadata all organized in a uniform manner across different research projects. It would be useful to understand the format of these files before running through the notebooks because we will be accessing many different modules within various files to retreive data. Click [here](https://nwb-schema.readthedocs.io/en/latest/) to explore NWB format specification." + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Understanding Data Colletion Techniques\n", + "In this databook, we will be analyzing data from two different types of experimental techniques: optical imagine (ophys) and extracellular electrophysiology (ecephys). To truly grasp what is happening during the analysis process, you should familiarize youself with these experimental modalities. \n", + "\n", + "Resouces for ophys:\n", + "1) [this paper](https://www.pnas.org/doi/epdf/10.1073/pnas.1232232100) will provide an introduction to two-photon calcium imaging. \n", + "\n", + "Resources for ecephys:\n", + "1) [this paper](https://www.nature.com/articles/s41586-020-03171-x) from the Allen Institute will provide an introduction to ecephys and the use of neuropixel probes. \n", + "2) [here](https://portal.brain-map.org/explore/circuits/visual-coding-neuropixels) is a visualization of the neuropixel probes that may come in handy when trying to visualualize how the data is collected from the probe itself." + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/basics/read_nwb.ipynb b/docs/basics/read_nwb.ipynb index 30ad72b8..9c938d72 100644 --- a/docs/basics/read_nwb.ipynb +++ b/docs/basics/read_nwb.ipynb @@ -77,7 +77,10 @@ "outputs": [], "source": [ "filename = dandi_filepath.split(\"/\")[-1]\n", - "filepath = f\"{download_loc}/{filename}\"" + "filepath = f\"{download_loc}/{filename}\"\n", + "\n", + "print(filename)\n", + "print(filepath)" ] }, { @@ -221,7 +224,9 @@ "outputs": [], "source": [ "### uncomment these to view aspects of the file\n", - "### note that not all these properties exist for all nwb files\n", + "\n", + "### not all of these exist for all NWB files (Key Errors will arise if the fields don't exist for this file)\n", + "\n", "# nwb.identifier\n", "# nwb.processing\n", "# nwb.acquisition[\"events\"]\n", @@ -6393,7 +6398,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.10" + "version": "3.9.13" } }, "nbformat": 4, diff --git a/docs/basics/stream_nwb.ipynb b/docs/basics/stream_nwb.ipynb index c62cc4d2..0892e97e 100644 --- a/docs/basics/stream_nwb.ipynb +++ b/docs/basics/stream_nwb.ipynb @@ -36,7 +36,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "id": "df1c4cce", "metadata": {}, "outputs": [], @@ -66,7 +66,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "id": "f3f97f13", "metadata": {}, "outputs": [], @@ -79,17 +79,10 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "id": "a51caf90", "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "A newer version (0.53.0) of dandi/dandi-cli is available. You are using 0.46.6\n" - ] - }, { "name": "stdout", "output_type": "stream", @@ -110,7 +103,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "id": "d131ad56", "metadata": {}, "outputs": [ @@ -118,7 +111,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Retrieved file url https://dandiarchive.s3.amazonaws.com/blobs/f5f/175/f5f1752f-5227-47d5-8f75-cd71937878aa?response-content-disposition=attachment%3B%20filename%3D%22sub-699733573_ses-715093703.nwb%22&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAUBRWC5GAEKH3223E%2F20230420%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date=20230420T201648Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=6088e2110f82ce358dec90e827468a37fd995c34e80089139ff1056659e1ccb8\n" + "Retrieved file url https://dandiarchive.s3.amazonaws.com/blobs/f5f/175/f5f1752f-5227-47d5-8f75-cd71937878aa?response-content-disposition=attachment%3B%20filename%3D%22sub-699733573_ses-715093703.nwb%22&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAUBRWC5GAEKH3223E%2F20230607%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date=20230607T170103Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=47c78e4993c637e57e9e6296dfd5f0f52d06f4d33574280ca6c527ebd4ed2869\n" ] } ], @@ -152,9 +145,9 @@ "name": "stderr", "output_type": "stream", "text": [ - "c:\\Users\\carter.peene\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\hdmf\\spec\\namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-common' version 1.1.3 because version 1.5.1 is already loaded.\n", + "c:\\Users\\katrina.ager\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\hdmf\\spec\\namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-common' version 1.1.3 because version 1.6.0 is already loaded.\n", " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", - "c:\\Users\\carter.peene\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\hdmf\\spec\\namespace.py:531: UserWarning: Ignoring cached namespace 'core' version 2.2.2 because version 2.6.0-alpha is already loaded.\n", + "c:\\Users\\katrina.ager\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\hdmf\\spec\\namespace.py:531: UserWarning: Ignoring cached namespace 'core' version 2.2.2 because version 2.5.0 is already loaded.\n", " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n" ] } @@ -182,13 +175,14 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 10, "id": "91031da2", "metadata": {}, "outputs": [], "source": [ "### uncomment these to view aspects of the file\n", - "### note that not all these properties exist for all nwb files\n", + "### not all of these exist for all NWB files (Key Errors will arise if the fields don't exist for this file)\n", + "\n", "# nwb.identifier\n", "# nwb.processing\n", "# nwb.acquisition[\"events\"]\n", @@ -199,14 +193,14 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 11, "id": "3e06b964", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "770645b2edf24149ad7158e0ea7c3096", + "model_id": "f5c84701e3b14599ac2adcf1fa35d89d", "version_major": 2, "version_minor": 0 }, @@ -239,7 +233,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.10" + "version": "3.9.13" } }, "nbformat": 4, diff --git a/docs/basics/use_nwbwidgets.ipynb b/docs/basics/use_nwbwidgets.ipynb index 859a54f1..b98783fc 100644 --- a/docs/basics/use_nwbwidgets.ipynb +++ b/docs/basics/use_nwbwidgets.ipynb @@ -53,7 +53,7 @@ "metadata": {}, "source": [ "### Downloading an NWB File\n", - "To examine an NWB File locally, it must first be downloaded. `dandiset_id` and `dandi_filepath` may be changed to select a different file off of DANDI. If the file of interest already downloaded, you don't need to run the download cell again. When trying to download an embargoed file, refer to the code from the [Downloading an NWB File](./download_nwb.ipynb) notebook." + "To examine an NWB File locally, it must first be downloaded. `dandiset_id` and `dandi_filepath` may be changed to select a different file off of DANDI. If the file of interest already downloaded, you don't need to run the download cell again. When trying to download an embargoed file, refer to the code from the [Downloading an NWB File](./download_nwb.ipynb) notebook. In the cells below, the DANDI API is used to faciliate the download. The `get_dandiset()` methods retrieves a specific dataset within DANDI while the `get_asset_by_path()` method retrieves a specific file within that dataset. " ] }, { @@ -73,10 +73,22 @@ "execution_count": 4, "id": "83d7e5f7", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "sub-699733573_ses-715093703.nwb\n", + "./sub-699733573_ses-715093703.nwb\n" + ] + } + ], "source": [ "filename = dandi_filepath.split(\"/\")[-1]\n", - "filepath = f\"{download_loc}/{filename}\"" + "filepath = f\"{download_loc}/{filename}\"\n", + "\n", + "print(filename)\n", + "print(filepath)" ] }, { @@ -85,13 +97,6 @@ "id": "1c5db129", "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "A newer version (0.53.0) of dandi/dandi-cli is available. You are using 0.46.6\n" - ] - }, { "name": "stdout", "output_type": "stream", @@ -104,6 +109,7 @@ "client = dandiapi.DandiAPIClient()\n", "my_dandiset = client.get_dandiset(dandiset_id)\n", "file = my_dandiset.get_asset_by_path(dandi_filepath)\n", + "\n", "# this may take awhile, especially if the file to download is large\n", "file.download(filepath)\n", "\n", @@ -132,9 +138,9 @@ "name": "stderr", "output_type": "stream", "text": [ - "c:\\Users\\carter.peene\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\hdmf\\spec\\namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-common' version 1.1.3 because version 1.5.1 is already loaded.\n", + "c:\\Users\\katrina.ager\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\hdmf\\spec\\namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-common' version 1.1.3 because version 1.6.0 is already loaded.\n", " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", - "c:\\Users\\carter.peene\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\hdmf\\spec\\namespace.py:531: UserWarning: Ignoring cached namespace 'core' version 2.2.2 because version 2.6.0-alpha is already loaded.\n", + "c:\\Users\\katrina.ager\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\hdmf\\spec\\namespace.py:531: UserWarning: Ignoring cached namespace 'core' version 2.2.2 because version 2.5.0 is already loaded.\n", " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n" ] }, @@ -142,7 +148,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "root pynwb.file.NWBFile at 0x2285253481232\n", + "root pynwb.file.NWBFile at 0x2179856764832\n", "Fields:\n", " acquisition: {\n", " raw_running_wheel_rotation ,\n", @@ -191,7 +197,7 @@ " session_id: 715093703\n", " session_start_time: 2019-01-19 00:54:18-08:00\n", " stimulus_notes: brain_observatory_1.1\n", - " subject: subject abc.EcephysSpecimen at 0x2285271628048\n", + " subject: subject abc.EcephysSpecimen at 0x2179856428960\n", "Fields:\n", " age: P118D\n", " age_in_days: 118.0\n", @@ -223,7 +229,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "ff394f60aa434277a364cc6bd96495c5", + "model_id": "fb037fcb861e489896b6812becc84a8e", "version_major": 2, "version_minor": 0 }, @@ -256,7 +262,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.10" + "version": "3.9.13" } }, "nbformat": 4, diff --git a/docs/first-order/optotagging.ipynb b/docs/first-order/optotagging.ipynb index 412c2fba..97305808 100644 --- a/docs/first-order/optotagging.ipynb +++ b/docs/first-order/optotagging.ipynb @@ -21,7 +21,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 47, "id": "12291e3d", "metadata": {}, "outputs": [], @@ -36,7 +36,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 48, "id": "31757169", "metadata": {}, "outputs": [], @@ -68,7 +68,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 49, "id": "0ac9cf76", "metadata": {}, "outputs": [], @@ -81,17 +81,10 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 50, "id": "986c3dd5", "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "A newer version (0.54.0) of dandi/dandi-cli is available. You are using 0.46.6\n" - ] - }, { "name": "stdout", "output_type": "stream", @@ -104,9 +97,9 @@ "name": "stderr", "output_type": "stream", "text": [ - "c:\\Users\\carter.peene\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\hdmf\\spec\\namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-common' version 1.1.3 because version 1.5.1 is already loaded.\n", + "c:\\Users\\katrina.ager\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\hdmf\\spec\\namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-common' version 1.1.3 because version 1.6.0 is already loaded.\n", " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", - "c:\\Users\\carter.peene\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\hdmf\\spec\\namespace.py:531: UserWarning: Ignoring cached namespace 'core' version 2.2.2 because version 2.6.0-alpha is already loaded.\n", + "c:\\Users\\katrina.ager\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\hdmf\\spec\\namespace.py:531: UserWarning: Ignoring cached namespace 'core' version 2.2.2 because version 2.5.0 is already loaded.\n", " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n" ] } @@ -128,7 +121,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 51, "id": "6b01dfb4", "metadata": {}, "outputs": [], @@ -140,7 +133,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 52, "id": "2b8bc125", "metadata": { "scrolled": true, @@ -347,7 +340,7 @@ "9 [(9, 1, optotagging pynwb.base.TimeSeries at 0... " ] }, - "execution_count": 6, + "execution_count": 52, "metadata": {}, "output_type": "execute_result" } @@ -358,7 +351,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 53, "id": "d27e63ad", "metadata": {}, "outputs": [ @@ -368,7 +361,7 @@ "{0.0049999999991996455, 0.01000000000021828, 1.0}" ] }, - "execution_count": 7, + "execution_count": 53, "metadata": {}, "output_type": "execute_result" } @@ -379,7 +372,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 54, "id": "b658cb86", "metadata": { "scrolled": false, @@ -797,7 +790,7 @@ "[10 rows x 29 columns]" ] }, - "execution_count": 8, + "execution_count": 54, "metadata": {}, "output_type": "execute_result" } @@ -821,7 +814,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 55, "id": "1a8b91fe", "metadata": {}, "outputs": [], @@ -848,7 +841,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 56, "id": "8c31cdcb", "metadata": {}, "outputs": [], @@ -870,7 +863,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 57, "id": "dae01d0b", "metadata": {}, "outputs": [], @@ -894,7 +887,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 58, "id": "7d0c6cf9", "metadata": { "scrolled": false @@ -928,7 +921,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 59, "id": "b6b0880a", "metadata": {}, "outputs": [], @@ -966,7 +959,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 60, "id": "565354e0", "metadata": {}, "outputs": [ @@ -1013,7 +1006,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 61, "id": "6bf75044", "metadata": {}, "outputs": [], @@ -1030,7 +1023,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 62, "id": "23eb13db", "metadata": {}, "outputs": [ @@ -1065,7 +1058,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 63, "id": "eafbb240", "metadata": {}, "outputs": [], @@ -1077,7 +1070,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 64, "id": "3af896e5", "metadata": {}, "outputs": [ @@ -1112,7 +1105,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 65, "id": "353a6e31", "metadata": {}, "outputs": [ @@ -1150,7 +1143,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 66, "id": "2e3b1ed0", "metadata": {}, "outputs": [], @@ -1193,7 +1186,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 67, "id": "f693b440", "metadata": {}, "outputs": [], @@ -1231,7 +1224,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 68, "id": "70767ac3", "metadata": {}, "outputs": [ @@ -1239,11 +1232,11 @@ "name": "stderr", "output_type": "stream", "text": [ - "C:\\Users\\carter.peene\\AppData\\Roaming\\Python\\Python39\\site-packages\\scipy\\stats\\_stats_py.py:8057: RuntimeWarning: ks_2samp: Exact calculation unsuccessful. Switching to method=asymp.\n", + "c:\\Users\\katrina.ager\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\scipy\\stats\\_stats_py.py:8057: RuntimeWarning: ks_2samp: Exact calculation unsuccessful. Switching to method=asymp.\n", " return ks_2samp(xvals, yvals, alternative=alternative, method=method)\n", - "C:\\Users\\carter.peene\\AppData\\Roaming\\Python\\Python39\\site-packages\\numpy\\core\\fromnumeric.py:3474: RuntimeWarning: Mean of empty slice.\n", + "c:\\Users\\katrina.ager\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\numpy\\core\\fromnumeric.py:3474: RuntimeWarning: Mean of empty slice.\n", " return _methods._mean(a, axis=axis, dtype=dtype,\n", - "C:\\Users\\carter.peene\\AppData\\Roaming\\Python\\Python39\\site-packages\\numpy\\core\\_methods.py:189: RuntimeWarning: invalid value encountered in double_scalars\n", + "c:\\Users\\katrina.ager\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\numpy\\core\\_methods.py:189: RuntimeWarning: invalid value encountered in double_scalars\n", " ret = ret.dtype.type(ret / rcount)\n" ] } @@ -1275,7 +1268,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 69, "id": "8a1c3430", "metadata": { "tags": [ @@ -1447,7 +1440,7 @@ "[3232 rows x 6 columns]" ] }, - "execution_count": 23, + "execution_count": 69, "metadata": {}, "output_type": "execute_result" } @@ -1480,7 +1473,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.10" + "version": "3.9.13" } }, "nbformat": 4,