

{"id":79301,"date":"2020-07-25T20:52:12","date_gmt":"2020-07-25T15:22:12","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=79301"},"modified":"2021-05-09T13:13:32","modified_gmt":"2021-05-09T07:43:32","slug":"numpy-broadcasting","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/numpy-broadcasting\/","title":{"rendered":"NumPy Broadcasting Computation on Arrays"},"content":{"rendered":"<p>Broadcasting in NumPy is a very useful concept. The array size is a very important concept when performing arithmetic operations on arrays. Arrays cannot always be of the same shape.<\/p>\n<p>We perform the array operations on corresponding array elements. Hence we broadcast the smaller array along with the larger array. This is done to achieve similar dimensions.<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/NumPy-Broadcasting.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-79806\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/NumPy-Broadcasting.jpg\" alt=\"NumPy Broadcasting\" width=\"1200\" height=\"628\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/NumPy-Broadcasting.jpg 1200w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/NumPy-Broadcasting-300x157.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/NumPy-Broadcasting-1024x536.jpg 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/NumPy-Broadcasting-150x79.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/NumPy-Broadcasting-768x402.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/NumPy-Broadcasting-520x272.jpg 520w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><\/p>\n<h2>NumPy Broadcasting<\/h2>\n<p>This functionality helps to perform arithmetic operations with ease. We use it to broadcast the arrays to convert them into similar shapes.<br \/>\nThe following <strong>rules<\/strong> are applicable on the arrays for broadcasting:<\/p>\n<p>1. If both the arrays do not have similar shapes, then we prepend the array of lower rank with 1s. This process continues until both the arrays have the same shape.<br \/>\n2. We can consider the arrays compatible if they have the same length in a dimension or if one of the arrays has size as 1.<br \/>\n3. Broadcasting is applicable if arrays are compatible in all the dimensions.<br \/>\n4. The shape of the arrays turns out to be equivalent element-wise after we perform broadcasting.<br \/>\n5. The smaller array appears as if it is a copy along the dimension.<br \/>\n6. The length of each dimension is either the same or 1.<\/p>\n<h3>a. Broadcasting array with the same shape<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">a = np.array([1.0, 2.0, 3.0])\r\nb = np.array([2.0, 2.0, 2.0])\r\na * b\r\n<\/pre>\n<p><strong>Output<\/strong><\/p>\n<div class=\"code-output\">array([ 2., 4., 6.])<\/div>\n<h3>b. Broadcasting an array along with a scalar value<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">a = np.array([1.0, 2.0, 3.0])\r\nb = 2.0\r\na * b\r\n<\/pre>\n<p><strong>Output<\/strong><\/p>\n<div class=\"code-output\">array([ 2., 4., 6.])<\/div>\n<p>In both of the above examples, we have done broadcasting keeping in mind the broadcasting rules.<\/p>\n<h3>NumPy Broadcasting in 1-D array<\/h3>\n<p>Array broadcasting when one of the array dimensions are 1. The array with the smaller dimension is then broadcasted along the larger dimension.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">import numpy as np \r\narr1 = np.array([56,78,94]) \r\nprint(arr1) \r\narr2 = 5 \r\nprint(arr2) \r\n  \r\na=arr1+arr2 \r\nprint(a)\r\n<\/pre>\n<p><strong>Output<\/strong><\/p>\n<div class=\"code-output\">[56 78 94]<br \/>\n5<br \/>\n[61 83 99]<\/div>\n<p>Here we carry out broadcasting over the smaller array. The broadcasting is due to the miss-match shape of the arrays.<\/p>\n<h3>NumPy Broadcasting in 2-D array<\/h3>\n<p>One of the arrays is a 2-dimensional array. We perform broadcasting on the smaller array.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">import numpy as np \r\narr1 = np.array(([45,90,87],[56,78,94])) \r\nprint(arr1) \r\narr2 = 5 \r\nprint(arr2) \r\n  \r\na=arr1+arr2 \r\nprint(a) \r\n<\/pre>\n<p><strong>Output<\/strong><\/p>\n<div class=\"code-output\">[[45 90 87]<br \/>\n[56 78 94]]<br \/>\n5<br \/>\n[[50 95 92]<br \/>\n[61 83 99]]<\/div>\n<p>Similarly we perform broadcasting on 3 or more dimensional arrays.<\/p>\n<h3>NumPy Broadcasting in 3-D array<\/h3>\n<p>We take a 3-dimensional array and broadcast along with a 1-D array.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">import numpy as np\r\nA = np.arange(24).reshape(2,3,4)\r\nA\r\nA.shape\r\nB = np.arange(4)\r\nB\r\nB.shape\r\nA+B\r\n\r\n<\/pre>\n<p><strong>Output<\/strong><\/p>\n<div class=\"code-output\">array([[[ 0, 2, 4, 6],<br \/>\n[ 4, 6, 8, 10],<br \/>\n[ 8, 10, 12, 14]],[[12, 14, 16, 18],<br \/>\n[16, 18, 20, 22],<br \/>\n[20, 22, 24, 26]]])<\/div>\n<h2>NumPy Broadcasting Limitations<\/h2>\n<p>Broadcasting is a very easy and handy tool when working with Numpy arrays. Although, there are many rules and restrictions to perform the operations.<\/p>\n<p>There are constraints on the dimension and shape of the arrays. We can perform broadcasting in cases where both the arrays have the same shape or only if either of the two has a size of 1. Also, we have to consider the dimensions in reverse order. We count it from the trailing dimension.<\/p>\n<h2>Summary<\/h2>\n<p>NumPy Broadcasting is a very important NumPy module for performing arithmetic operations. It helps to modulate the array shape automatically. We translate the shape of the array for compatible operations.<\/p>\n<p>The array has to follow the rules of compatible shape for broadcasting. Arrays with the same shape or with one of the arrays with size one are compatible.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Broadcasting in NumPy is a very useful concept. The array size is a very important concept when performing arithmetic operations on arrays. Arrays cannot always be of the same shape. We perform the array&#46;&#46;&#46;<\/p>\n","protected":false},"author":6,"featured_media":79806,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[22401],"tags":[22782,22783],"class_list":["post-79301","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-numpy","tag-numpy-broadcasting","tag-numpy-broadcasting-limitations"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>NumPy Broadcasting Computation on Arrays - DataFlair<\/title>\n<meta name=\"description\" content=\"Learn broadcasting in Numpy - what is Numpy Broadcasting in 1D array, 2D array and 3D array with syntax and examples. See limitations of NumPy Broadcasting.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/numpy-broadcasting\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"NumPy Broadcasting Computation on Arrays - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Learn broadcasting in Numpy - what is Numpy Broadcasting in 1D array, 2D array and 3D array with syntax and examples. See limitations of NumPy Broadcasting.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/numpy-broadcasting\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-07-25T15:22:12+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-05-09T07:43:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/NumPy-Broadcasting.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"NumPy Broadcasting Computation on Arrays - DataFlair","description":"Learn broadcasting in Numpy - what is Numpy Broadcasting in 1D array, 2D array and 3D array with syntax and examples. See limitations of NumPy Broadcasting.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/data-flair.training\/blogs\/numpy-broadcasting\/","og_locale":"en_US","og_type":"article","og_title":"NumPy Broadcasting Computation on Arrays - DataFlair","og_description":"Learn broadcasting in Numpy - what is Numpy Broadcasting in 1D array, 2D array and 3D array with syntax and examples. See limitations of NumPy Broadcasting.","og_url":"https:\/\/data-flair.training\/blogs\/numpy-broadcasting\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2020-07-25T15:22:12+00:00","article_modified_time":"2021-05-09T07:43:32+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/NumPy-Broadcasting.jpg","type":"image\/jpeg"}],"author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/numpy-broadcasting\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/numpy-broadcasting\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/2c58ecb4f73a39f0ef993f1ddfcd7b89"},"headline":"NumPy Broadcasting Computation on Arrays","datePublished":"2020-07-25T15:22:12+00:00","dateModified":"2021-05-09T07:43:32+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/numpy-broadcasting\/"},"wordCount":471,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/numpy-broadcasting\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/NumPy-Broadcasting.jpg","keywords":["NumPy Broadcasting","NumPy Broadcasting limitations"],"articleSection":["NumPy Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/numpy-broadcasting\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/numpy-broadcasting\/","url":"https:\/\/data-flair.training\/blogs\/numpy-broadcasting\/","name":"NumPy Broadcasting Computation on Arrays - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/numpy-broadcasting\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/numpy-broadcasting\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/NumPy-Broadcasting.jpg","datePublished":"2020-07-25T15:22:12+00:00","dateModified":"2021-05-09T07:43:32+00:00","description":"Learn broadcasting in Numpy - what is Numpy Broadcasting in 1D array, 2D array and 3D array with syntax and examples. See limitations of NumPy Broadcasting.","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/numpy-broadcasting\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/numpy-broadcasting\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/numpy-broadcasting\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/NumPy-Broadcasting.jpg","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/07\/NumPy-Broadcasting.jpg","width":1200,"height":628,"caption":"NumPy Broadcasting"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/numpy-broadcasting\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"NumPy Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/numpy\/"},{"@type":"ListItem","position":3,"name":"NumPy Broadcasting Computation on Arrays"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/2c58ecb4f73a39f0ef993f1ddfcd7b89","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/1ce4a0e3e542444fc73bbebf83e89e8b73e2d95ccb1fcee64da9945f078b97c5?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1ce4a0e3e542444fc73bbebf83e89e8b73e2d95ccb1fcee64da9945f078b97c5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1ce4a0e3e542444fc73bbebf83e89e8b73e2d95ccb1fcee64da9945f078b97c5?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"The DataFlair Team provides industry-driven content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Our expert educators focus on delivering value-packed, easy-to-follow resources for tech enthusiasts and professionals.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam2\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/79301","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=79301"}],"version-history":[{"count":5,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/79301\/revisions"}],"predecessor-version":[{"id":93063,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/79301\/revisions\/93063"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/79806"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=79301"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=79301"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=79301"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}