Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New recipe notebook for MatrixMultiply #822

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
331 changes: 331 additions & 0 deletions Recipes/ClearScape_Functions/MatrixMultiply.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,331 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "bc549e6c-0cc4-4188-94a3-a9bdd3ae3dfa",
"metadata": {},
"source": [
"<header>\n",
" <p style='font-size:36px;font-family:Arial; color:#F0F0F0; background-color: #00233c; padding-left: 20pt; padding-top: 20pt;padding-bottom: 10pt; padding-right: 20pt;'>\n",
" MatrixMultiply function in Vantage\n",
" <br>\n",
" <img id=\"teradata-logo\" src=\"https://storage.googleapis.com/clearscape_analytics_demo_data/DEMO_Logo/teradata.svg\" alt=\"Teradata\" style=\"width: 125px; height: auto; margin-top: 20pt;\">\n",
" </p>\n",
"</header>"
]
},
{
"cell_type": "markdown",
"id": "7ae7611a-0795-4168-b716-01fee6880cbd",
"metadata": {},
"source": [
"<p style = 'font-size:20px;font-family:Arial;color:#00233C'><b>Introduction</b></p>\n",
"\n",
"<p style = 'font-size:20px;font-family:Arial;color:#00233C'><b>MatrixMultiply</b></p>\n",
"<p style = 'font-size:16px;font-family:Arial;color:#00233C'> The MatrixMultiply() function enables users to create a data series based on two matrixes. The source matrixes must have the same number of data points and the same number of wavelets.</p>\n"
]
},
{
"cell_type": "markdown",
"id": "6b3a00b4-6661-4c91-9b2d-cb7b0b403140",
"metadata": {},
"source": [
"<hr style=\"height:2px;border:none;background-color:#00233C;\">\n",
"<b style = 'font-size:20px;font-family:Arial;color:#00233C'>1. Initiate a connection to Vantage</b>"
]
},
{
"cell_type": "markdown",
"id": "2346857f-e0d3-488a-8a3f-ac6dff752c2b",
"metadata": {},
"source": [
"<p style = 'font-size:16px;font-family:Arial;color:#00233C'>In the section, we import the required libraries and set environment variables and environment paths (if required)."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c5af5af3-29d5-4f6a-8334-9df6924e7787",
"metadata": {},
"outputs": [],
"source": [
"from teradataml import (\n",
" create_context,\n",
" execute_sql,\n",
" load_example_data,\n",
" DataFrame,\n",
" in_schema,\n",
" TDMatrix,\n",
" MatrixMultiply,\n",
" Figure,\n",
" plot,\n",
" db_drop_view,\n",
" remove_context,\n",
" copy_to_sql,\n",
" db_drop_table\n",
" )\n",
"\n",
"from teradatasqlalchemy.types import *\n",
"\n",
"from teradataml import to_numeric\n",
"# Modify the following to match the specific client environment settings\n",
"display.max_rows = 5"
]
},
{
"cell_type": "markdown",
"id": "ad3dd7b4-831c-4fb3-ab71-719c8c99a71c",
"metadata": {},
"source": [
"<hr style=\"height:1px;border:none;background-color:#00233C;\">\n",
"<p style = 'font-size:18px;font-family:Arial;color:#00233c'><b>1.1 Connect to Vantage</b></p>\n",
"<p style = 'font-size:16px;font-family:Arial;color:#00233C'>You will be prompted to provide the password. Enter your password, press the Enter key, and then use the down arrow to go to the next cell.</p>"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2742444c-4349-4b0f-b4e5-b068a8785cd9",
"metadata": {},
"outputs": [],
"source": [
"%run -i ../../UseCases/startup.ipynb\n",
"eng = create_context(host = 'host.docker.internal', username='demo_user', password = password)\n",
"print(eng)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "01c4a128-d106-46ea-8dee-34acc5abd29f",
"metadata": {},
"outputs": [],
"source": [
"%%capture\n",
"execute_sql('''SET query_band='DEMO=PP_MatrixMultiply_Python.ipynb;' UPDATE FOR SESSION; ''')"
]
},
{
"cell_type": "markdown",
"id": "efe2fd2d-63ff-4278-9157-8b9110d682e8",
"metadata": {},
"source": [
"<p style = 'font-size:16px;font-family:Arial;color:#00233C'>Begin running steps with Shift + Enter keys. </p>"
]
},
{
"cell_type": "markdown",
"id": "4a6e3852-3b15-4cbd-844d-e7194b3bd204",
"metadata": {},
"source": [
"<hr style='height:1px;border:none;background-color:#00233C;'>\n",
"\n",
"<p style = 'font-size:18px;font-family:Arial;color:#00233c'><b>1.2 Getting Data for This Demo</b></p>\n",
"\n",
"<p style = 'font-size:16px;font-family:Arial;color:#00233C'>Here, we will get the time series data which is available in the teradataml library and use the same to show the usage of the function.</p>"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "398fa0aa-c0df-4130-9dea-53b776fbaf80",
"metadata": {},
"outputs": [],
"source": [
"load_example_data(\"uaf\", [\"mtx1\", \"mtx2\"])"
]
},
{
"cell_type": "markdown",
"id": "2a3762ac-ba27-4fa3-adba-d577262a4290",
"metadata": {},
"source": [
"<hr style=\"height:2px;border:none;background-color:#00233C;\">\n",
"<b style = 'font-size:20px;font-family:Arial;color:#00233C'>2. Data Exploration</b>\n",
"<p style = 'font-size:16px;font-family:Arial;color:#00233C'>Create a \"Virtual DataFrame\" that points to the data set in Vantage. Check the shape of the dataframe as check the datatype of all the columns of the dataframe.</p>"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "9672d80d-cdcc-4f4c-9399-7c367e7970b1",
"metadata": {},
"outputs": [],
"source": [
"df1 = DataFrame.from_table(\"mtx1\")\n",
"df2 = DataFrame.from_table(\"mtx2\")\n",
"df1"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "cff58014-1936-4315-8f1e-ae7c78b9317c",
"metadata": {},
"outputs": [],
"source": [
"df2"
]
},
{
"cell_type": "markdown",
"id": "4a2f79a0-eb16-4c3b-bec2-c313e97ac940",
"metadata": {},
"source": [
"<hr style=\"height:2px;border:none;background-color:#00233C;\">\n",
"<b style = 'font-size:20px;font-family:Arial;color:#00233C'>3. MatrixMultiply</b>\n",
"<p style = 'font-size:16px;font-family:Arial;color:#00233C'>The MatrixMultiply() function performs a point-wise mathematical operation against two matrixes having the same number of wavelets and having the same number of data-points within a same wavelet-point from the two matrices.</p>\n",
"\n",
"<p style = 'font-size:16px;font-family:Arial;color:#00233C'>The first step is to convert the data into TDMatrix, which is required for the input data which are passed to the MatrixMultiply function.</p>\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "a711f58c-fbd3-4457-9f6a-9cd5c1b192dc",
"metadata": {},
"outputs": [],
"source": [
"data1_matrix_df = TDMatrix(data=df1, \n",
" id='buoy_id', \n",
" row_index='row_i',\n",
" column_index='column_i', \n",
" row_index_style=\"SEQUENCE\",\n",
" column_index_style=\"SEQUENCE\", \n",
" payload_field='speed1',\n",
" payload_content='REAL')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "8965392c-404e-4e25-b5b8-c7ef06069154",
"metadata": {},
"outputs": [],
"source": [
"data2_matrix_df = TDMatrix(data=df2, \n",
" id='buoy_id', \n",
" row_index='row_i',\n",
" column_index='column_i', \n",
" row_index_style=\"SEQUENCE\",\n",
" column_index_style=\"SEQUENCE\", \n",
" payload_field='speed2',\n",
" payload_content='REAL')"
]
},
{
"cell_type": "markdown",
"id": "e7084ee9-a1c6-4f14-84b6-54bbb9659b16",
"metadata": {},
"source": [
"<p style = 'font-size:16px;font-family:Arial;color:#00233C'>Use the MatrixMultiply function on the above created Matrix.</p>"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "44fac20f-39fb-40fe-8716-f638aa79e6d1",
"metadata": {},
"outputs": [],
"source": [
"uaf_out = MatrixMultiply(data1=data1_matrix_df,\n",
" data2=data2_matrix_df,\n",
" input_fmt_input_mode='MATCH')\n",
" \n",
"# Print the result DataFrame.\n",
"df=uaf_out.result\n",
"df"
]
},
{
"cell_type": "markdown",
"id": "c25fdaf1-098b-4dea-984b-579c6412557e",
"metadata": {},
"source": [
"<hr style=\"height:2px;border:none;background-color:#00233C;\">\n",
"<b style = 'font-size:20px;font-family:Arial;color:#00233C'>4. Cleanup</b>"
]
},
{
"cell_type": "markdown",
"id": "a5d460af-1a32-4681-8094-360c3f25dc1f",
"metadata": {},
"source": [
"<p style = 'font-size:18px;font-family:Arial;color:#00233C'><b>Work Tables</b></p>\n",
"<p style = 'font-size:16px;font-family:Arial;color:#00233C'>The following code will clean up tables created above.</p>"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "9dff9677-dae1-4cc5-b78e-3d197cc41e0c",
"metadata": {},
"outputs": [],
"source": [
"db_drop_table(\"mtx1\")\n",
"db_drop_table(\"mtx2\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "9b96168c-7973-4259-b3e0-668b92fd846e",
"metadata": {},
"outputs": [],
"source": [
"remove_context()"
]
},
{
"cell_type": "markdown",
"id": "4317a6cf-1479-4aa8-b30a-ee0a3b5231a8",
"metadata": {},
"source": [
"<hr style=\"height:1px;border:none;background-color:#00233C;\">\n",
"\n",
"<p style = 'font-size:16px;font-family:Arial;color:#00233C'><b>Links:</b></p>\n",
"<ul style = 'font-size:16px;font-family:Arial'>\n",
" <li>Teradataml Python reference: <a href = 'https://docs.teradata.com/search/all?query=Python+Package+User+Guide&content-lang=en-US'>here</a></li>\n",
" <li>MatrixMultiply function reference: <a href = 'https://docs.teradata.com/search/all?query=MatrixMultiply&content-lang=en-US'>here</a></li>\n",
" \n",
"</ul>"
]
},
{
"cell_type": "markdown",
"id": "b2dcca28-5de5-44d7-88cb-45a12153b3f8",
"metadata": {},
"source": [
"<footer style=\"padding-bottom:35px; background:#f9f9f9; border-bottom:3px solid #00233C\">\n",
" <div style=\"float:left;margin-top:14px\">ClearScape Analytics™</div>\n",
" <div style=\"float:right;\">\n",
" <div style=\"float:left; margin-top:14px\">\n",
" Copyright © Teradata Corporation - 2025. All Rights Reserved\n",
" </div>\n",
" </div>\n",
"</footer>"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.9.10"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Loading