1<!DOCTYPE html> 2<html 3 lang="ja" 4 5 6data-admin-domain="//blog.hatena.ne.jp" 7data-admin-origin="https://blog.hatena.ne.jp" 8data-author="sz_dr" 9data-avail-langs="ja en" 10data-blog="szdr.hatenablog.com" 11data-blog-host="szdr.hatenablog.com" 12data-blog-is-public="1" 13data-blog-name="人éã ã£ããèãã¦" 14data-blog-owner="sz_dr" 15data-blog-show-ads="" 16data-blog-show-sleeping-ads="" 17data-blog-uri="https://www.szdrblog.info/" 18data-blog-uuid="6653812171400722341" 19data-blogs-uri-base="https://www.szdrblog.info" 20data-brand="pro" 21data-data-layer="{"hatenablog":{"admin":{},"analytics":{"brand_property_id":"","measurement_id":"","non_sampling_property_id":"","property_id":"UA-161438189-1","separated_property_id":"UA-29716941-21"},"blog":{"blog_id":"6653812171400722341","content_seems_japanese":"true","disable_ads":"custom_domain","enable_ads":"false","entry_show_footer_related_entries":"true","force_pc_view":"false","is_public":"true","is_responsive_view":"false","is_sleeping":"true","lang":"ja","name":"\u4eba\u9593\u3060\u3063\u305f\u3089\u8003\u3048\u3066","owner_name":"sz_dr","uri":"https://www.szdrblog.info/"},"brand":"pro","page_id":"entry","permalink_entry":{"author_name":"sz_dr","categories":"Python","character_count":3055,"date":"2023-12-22","entry_id":"6801883189068880610","first_category":"Python","hour":"23","title":"numpy.typing.NDArray\u306e\u6574\u7406","uri":"https://www.szdrblog.info/entry/2023/12/22/233113"},"pro":"pro","router_type":"blogs"}}" 22data-device="pc" 23data-dont-recommend-pro="false" 24data-global-domain="https://hatena.blog" 25data-globalheader-color="b" 26data-globalheader-type="pc" 27data-has-touch-view="1" 28data-help-url="https://help.hatenablog.com" 29data-page="entry" 30data-parts-domain="https://hatenablog-parts.com" 31data-plus-available="1" 32data-pro="true" 33data-router-type="blogs" 34data-sentry-dsn="https://[email protected]/1195218" 35data-sentry-environment="production" 36data-sentry-sample-rate="0.1" 37data-show-heading-anchor-link="1" 38data-static-domain="https://cdn.blog.st-hatena.com" 39data-version="6810a7f5d0766c84edfe3b435c3a2e" 40 41 42 43 44 45 46 data-initial-state="{}" 47 48 > 49 <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# article: http://ogp.me/ns/article#"> 50 51 52 53 54 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 55 56 57 58 59 60 61 62 <meta name="robots" content="max-image-preview:large" /> 63 64 65 <meta charset="utf-8"/> 66 <meta http-equiv="X-UA-Compatible" content="IE=7; IE=9; IE=10; IE=11" /> 67 <title>numpy.typing.NDArrayã®æ´ç - 人éã ã£ããèãã¦</title> 68 69 70 <link rel="canonical" href="https://www.szdrblog.info/entry/2023/12/22/233113"/> 71 72 73 74 75 76<meta itemprop="name" content="numpy.typing.NDArrayã®æ´ç - 人éã ã£ããèãã¦"/> 77 78 <meta itemprop="image" content="https://cdn.image.st-hatena.com/image/scale/f7675cad2e068781cd1363e68335f34bffe7e73f/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn.blog.st-hatena.com%2Fimages%2Ftheme%2Fog-image-1500.png"/> 79 80 81 <meta property="og:title" content="numpy.typing.NDArrayã®æ´ç - 人éã ã£ããèãã¦"/> 82<meta property="og:type" content="article"/> 83 <meta property="og:url" content="https://www.szdrblog.info/entry/2023/12/22/233113"/> 84 85 <meta property="og:image" content="https://cdn.image.st-hatena.com/image/scale/f7675cad2e068781cd1363e68335f34bffe7e73f/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn.blog.st-hatena.com%2Fimages%2Ftheme%2Fog-image-1500.png"/> 86 87<meta property="og:image:alt" content="numpy.typing.NDArrayã®æ´ç - 人éã ã£ããèãã¦"/> 88 <meta property="og:description" content="æ¦è¦ numpy.typing.NDArrayã¨ã¯ä½ã NDArrayãå©ç¨ããåã¢ããã¼ã·ã§ã³ ã¾ã¨ã æ¦è¦ numpy version=1.20ããnumpy.typingãæä¾ããã¦ãã¾ãã numpy.org åã¢ããã¼ã·ã§ã³ãè¨è¿°ããéã«ãnumpy.ndarrayã§æå®ããã®ã¨ãnumpy.typing.NDArrayã§æå®ããã®ã¯ä½ãéãã®ããæ´çãã¾ãã numpy.typing.NDArrayã¨ã¯ä½ã Typing (numpy.typing) â NumPy v1.26 Manualã«ããã¨ã A generic version of np.ndarray[Any, np.â¦" /> 89<meta property="og:site_name" content="人éã ã£ããèãã¦"/> 90 91 <meta property="article:published_time" content="2023-12-22T14:31:13Z" /> 92 93 <meta property="article:tag" content="Python" /> 94 <meta name="twitter:card" content="summary_large_image" /> 95 <meta name="twitter:image" content="https://cdn.image.st-hatena.com/image/scale/f7675cad2e068781cd1363e68335f34bffe7e73f/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn.blog.st-hatena.com%2Fimages%2Ftheme%2Fog-image-1500.png" /> <meta name="twitter:title" content="numpy.typing.NDArrayã®æ´ç - 人éã ã£ããèãã¦" /> <meta name="twitter:description" content="æ¦è¦ numpy.typing.NDArrayã¨ã¯ä½ã NDArrayãå©ç¨ããåã¢ããã¼ã·ã§ã³ ã¾ã¨ã æ¦è¦ numpy version=1.20ããnumpy.typingãæä¾ããã¦ãã¾ãã numpy.org åã¢ããã¼ã·ã§ã³ãè¨è¿°ããéã«ãnumpy.ndarrayã§æå®ããã®ã¨ãnumpy.typing.Nâ¦" /> <meta name="twitter:app:name:iphone" content="ã¯ã¦ãªããã°ã¢ããª" /> 96 <meta name="twitter:app:id:iphone" content="583299321" /> 97 <meta name="twitter:app:url:iphone" content="hatenablog:///open?uri=https%3A%2F%2Fwww.szdrblog.info%2Fentry%2F2023%2F12%2F22%2F233113" /> <meta name="twitter:site" content="@sz_dr" /> 98 99 <meta name="description" content="æ¦è¦ numpy.typing.NDArrayã¨ã¯ä½ã NDArrayãå©ç¨ããåã¢ããã¼ã·ã§ã³ ã¾ã¨ã æ¦è¦ numpy version=1.20ããnumpy.typingãæä¾ããã¦ãã¾ãã numpy.org åã¢ããã¼ã·ã§ã³ãè¨è¿°ããéã«ãnumpy.ndarrayã§æå®ããã®ã¨ãnumpy.typing.NDArrayã§æå®ããã®ã¯ä½ãéãã®ããæ´çãã¾ãã numpy.typing.NDArrayã¨ã¯ä½ã Typing (numpy.typing) â NumPy v1.26 Manualã«ããã¨ã A generic version of np.ndarray[Any, np.â¦" /> 100 101 102
103<script 104 id="embed-gtm-data-layer-loader" 105 data-data-layer-page-specific="{"hatenablog":{"blogs_permalink":{"entry_afc_issued":"false","blog_afc_issued":"false","is_blog_sleeping":"true","has_related_entries_with_elasticsearch":"true","is_author_pro":"true"}}}" 106> 107(function() { 108 function loadDataLayer(elem, attrName) { 109 if (!elem) { return {}; } 110 var json = elem.getAttribute(attrName); 111 if (!json) { return {}; } 112 return JSON.parse(json); 113 } 114 115 var globalVariables = loadDataLayer( 116 document.documentElement, 117 'data-data-layer' 118 ); 119 var pageSpecificVariables = loadDataLayer( 120 document.getElementById('embed-gtm-data-layer-loader'), 121 'data-data-layer-page-specific' 122 ); 123 124 var variables = [globalVariables, pageSpecificVariables]; 125 126 if (!window.dataLayer) { 127 window.dataLayer = []; 128 } 129 130 for (var i = 0; i < variables.length; i++) { 131 window.dataLayer.push(variables[i]); 132 } 133})(); 134</script>
134 135 136<!-- Google Tag Manager -->
137<script>
vendor: 327 bytes, lines 137-141
137(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 138new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 139j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 140'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 141})(window,document,'script','dataLayer','
141GTM-P4CXTW
vendor: 3 bytes, line 141
141');
141</script>
141 142<!-- End Google Tag Manager --> 143 144 145 146 147 148 149 150 151 152 153 154 <link rel="shortcut icon" href="https://www.szdrblog.info/icon/favicon"> 155<link rel="apple-touch-icon" href="https://www.szdrblog.info/icon/touch"> 156<link rel="icon" sizes="192x192" href="https://www.szdrblog.info/icon/link"> 157 158 159 160<link rel="alternate" type="application/atom+xml" title="Atom" href="https://www.szdrblog.info/feed"/> 161<link rel="alternate" type="application/rss+xml" title="RSS2.0" href="https://www.szdrblog.info/rss"/> 162 163 <link rel="alternate" type="application/json+oembed" href="https://hatena.blog/oembed?url=https%3A%2F%2Fwww.szdrblog.info%2Fentry%2F2023%2F12%2F22%2F233113&format=json" title="oEmbed Profile of numpy.typing.NDArrayã®æ´ç"/> 164<link rel="alternate" type="text/xml+oembed" href="https://hatena.blog/oembed?url=https%3A%2F%2Fwww.szdrblog.info%2Fentry%2F2023%2F12%2F22%2F233113&format=xml" title="oEmbed Profile of numpy.typing.NDArrayã®æ´ç"/> 165 166 <link rel="author" href="http://www.hatena.ne.jp/sz_dr/"> 167 168 169 170 171 172 173 174 175<link rel="stylesheet" type="text/css" href="https://cdn.blog.st-hatena.com/css/blog.css?version=6810a7f5d0766c84edfe3b435c3a2e"/> 176 177 178 <link rel="stylesheet" type="text/css" href="https://usercss.blog.st-hatena.com/blog_style/6653812171400722341/64ca9dc448cfc4e15f9e18070d53da750b273519"/> 179 180 181 182 183 184 185
186<script> </script>
186 187 188 189<style> 190 div#google_afc_user, 191 div.google-afc-user-container, 192 div.google_afc_image, 193 div.google_afc_blocklink { 194 display: block !important; 195 } 196</style> 197 198 199 200 201 202
202<script type="application/ld+json">{"@context":"http://schema.org","@type":"Article","dateModified":"2023-12-22T23:31:13+09:00","datePublished":"2023-12-22T23:31:13+09:00","description":"æ¦è¦ numpy.typing.NDArrayã¨ã¯ä½ã NDArrayãå©ç¨ããåã¢ããã¼ã·ã§ã³ ã¾ã¨ã æ¦è¦ numpy version=1.20ããnumpy.typingãæä¾ããã¦ãã¾ãã numpy.org åã¢ããã¼ã·ã§ã³ãè¨è¿°ããéã«ãnumpy.ndarrayã§æå®ããã®ã¨ãnumpy.typing.NDArrayã§æå®ããã®ã¯ä½ãéãã®ããæ´çãã¾ãã numpy.typing.NDArrayã¨ã¯ä½ã Typing (numpy.typing) â NumPy v1.26 Manualã«ããã¨ã A generic version of np.ndarray[Any, np.â¦","headline":"numpy.typing.NDArrayã®æ´ç","image":["https://cdn.blog.st-hatena.com/images/theme/og-image-1500.png"],"mainEntityOfPage":{"@id":"https://www.szdrblog.info/entry/2023/12/22/233113","@type":"WebPage"}}</script>
202 203 204 205 206
206<script data-ad-client="ca-pub-9447475547516717" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
206 207<meta name="google-site-verification" content="nA6semdRFgBIH116ZU8DIOtUV0Ri2PbisLFvmHfNBcU" /> 208 209 210 211</head> 212 213 <body class="page-entry category-Python globalheader-ng-enabled"> 214 215 216 217<div id="globalheader-container" 218 data-brand="hatenablog" 219 220 > 221 <iframe id="globalheader" height="37" frameborder="0" allowTransparency="true"></iframe> 222</div> 223 224 225 226 227 228 <nav class=" 229 blog-controlls 230 231 "> 232 <div class="blog-controlls-blog-icon"> 233 <a href="https://www.szdrblog.info/"> 234 <img src="https://cdn.image.st-hatena.com/image/square/2add95f3d3869dbec2cf4c52d706c470c1a3367b/backend=imagemagick;height=128;version=1;width=128/https%3A%2F%2Fcdn.user.blog.st-hatena.com%2Fcustom_blog_icon%2F107076361%2F1514243901786506" alt="人éã ã£ããèãã¦"/> 235 </a> 236 </div> 237 <div class="blog-controlls-title"> 238 <a href="https://www.szdrblog.info/">人éã ã£ããèãã¦</a> 239 </div> 240 <a href="https://blog.hatena.ne.jp/sz_dr/szdr.hatenablog.com/subscribe?utm_source=blogs_topright_button&utm_medium=button&utm_campaign=subscribe_blog" class="blog-controlls-subscribe-btn test-blog-header-controlls-subscribe"> 241 èªè ã«ãªã 242 </a> 243 </nav> 244 245 246 <div id="container"> 247 <div id="container-inner"> 248 <header id="blog-title" data-brand="hatenablog"> 249 <div id="blog-title-inner" > 250 <div id="blog-title-content"> 251 <h1 id="title"><a href="https://www.szdrblog.info/">人éã ã£ããèãã¦</a></h1> 252 253 </div> 254 </div> 255</header> 256 257 258 259 260 261 <div id="top-box"> 262 <div class="breadcrumb" data-test-id="breadcrumb"> 263 <div class="breadcrumb-inner"> 264 <a class="breadcrumb-link" href="https://www.szdrblog.info/"><span>ããã</span></a> <span class="breadcrumb-gt">></span> <span class="breadcrumb-child"> <a class="breadcrumb-child-link" href="https://www.szdrblog.info/archive/category/Python"><span>Python</span></a> </span> <span class="breadcrumb-gt">></span> <span class="breadcrumb-child"> <span>numpy.typing.NDArrayã®æ´ç</span> </span> </div> 265 </div> 266 </div> 267
267<script type="application/ld+json" class="test-breadcrumb-json-ld"> 268 {"itemListElement":[{"item":{"name":"ããã","@id":"https://www.szdrblog.info/"},"position":1,"@type":"ListItem"},{"@type":"ListItem","position":2,"item":{"@id":"https://www.szdrblog.info/archive/category/Python","name":"Python"}}],"@type":"BreadcrumbList","@context":"http://schema.org"} 269 </script>
269 270 271 272 273 274 275 276<div id="content" class="hfeed" 277 278 > 279 <div id="content-inner"> 280 <div id="wrapper"> 281 <div id="main"> 282 <div id="main-inner"> 283 284 285 286 287 288 289 290 291 <!-- google_ad_section_start --> 292 <!-- rakuten_ad_target_begin --> 293 294 295 296 297 298 299 300 301 302 <article class="entry hentry test-hentry js-entry-article date-first autopagerize_page_element chars-3200 words-400 mode-markdown entry-odd" id="entry-6801883189068880610" data-keyword-campaign="" data-uuid="6801883189068880610" data-publication-type="entry"> 303 <div class="entry-inner"> 304 <header class="entry-header"> 305 306 <div class="date entry-date first"> 307 <a href="https://www.szdrblog.info/archive/2023/12/22" rel="nofollow"> 308 <time datetime="2023-12-22T14:31:13Z" title="2023-12-22T14:31:13Z"> 309 <span class="date-year">2023</span><span class="hyphen">-</span><span class="date-month">12</span><span class="hyphen">-</span><span class="date-day">22</span> 310 </time> 311 </a> 312 </div> 313 <h1 class="entry-title"> 314 <a href="https://www.szdrblog.info/entry/2023/12/22/233113" class="entry-title-link bookmark">numpy.typing.NDArrayã®æ´ç</a> 315</h1> 316 317 318 319 320 <div class="entry-categories categories"> 321 322 <a href="https://www.szdrblog.info/archive/category/Python" class="entry-category-link category-Python">Python</a> 323 324 </div> 325 326 327 328 329 330 331</header> 332 333 334 335 336 <div class="entry-content hatenablog-entry"> 337 338 <ul class="table-of-contents"> 339 <li><a href="#æ¦è¦">æ¦è¦</a></li> 340 <li><a href="#numpytypingNDArrayã¨ã¯ä½ã">numpy.typing.NDArrayã¨ã¯ä½ã</a></li> 341 <li><a href="#NDArrayãå©ç¨ããåã¢ããã¼ã·ã§ã³">NDArrayãå©ç¨ããåã¢ããã¼ã·ã§ã³</a></li> 342 <li><a href="#ã¾ã¨ã">ã¾ã¨ã</a></li> 343</ul> 344 345<h1 id="æ¦è¦">æ¦è¦</h1> 346 347<p>numpy version=1.20ãã<code>numpy.typing</code>ãæä¾ããã¦ãã¾ãã</p> 348 349<p><iframe src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fnumpy.org%2Fdoc%2Fstable%2Freference%2Ftyping.html" title="Typing (numpy.typing) â NumPy v1.26 Manual" class="embed-card embed-webcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" loading="lazy"></iframe><cite class="hatena-citation"><a href="https://numpy.org/doc/stable/reference/typing.html">numpy.org</a></cite></p> 350 351<p>åã¢ããã¼ã·ã§ã³ãè¨è¿°ããéã«ã<code>numpy.ndarray</code>ã§æå®ããã®ã¨ã<code>numpy.typing.NDArray</code>ã§æå®ããã®ã¯ä½ãéãã®ããæ´çãã¾ãã</p> 352 353<h1 id="numpytypingNDArrayã¨ã¯ä½ã">numpy.typing.NDArrayã¨ã¯ä½ã</h1> 354 355<p><a href="https://numpy.org/doc/stable/reference/typing.html#numpy.typing.NDArray">Typing (numpy.typing) — NumPy v1.26 Manual</a>ã«ããã¨ã</p> 356 357<blockquote><p>A generic version of np.ndarray[Any, np.dtype[+ScalarType]].</p></blockquote> 358 359<p>ã¨è¨è¼ããã¦ãã¾ãã</p> 360 361<p>numpy==1.26.2ã«ããã<code>numpy.typing.NDArray</code>ã®å®è£ ã確èªãã¦ã¿ã¾ãã</p> 362 363<pre class="code lang-python" data-lang="python" data-unlink><span class="synPreProc">import</span> numpy <span class="synStatement">as</span> np 364<span class="synPreProc">import</span> numpy.typing <span class="synStatement">as</span> npt 365 366npt.NDArray 367</pre> 368 369 370 371 372<pre class="code lang-python" data-lang="python" data-unlink>numpy.ndarray[typing.Any, numpy.dtype[+_ScalarType_co]] 373</pre> 374 375 376<p><a href="https://github.com/numpy/numpy/blob/v1.26.2/numpy/_typing/_array_like.py#L32">ã³ã¼ãä¸</a>ã§ã¯ä»¥ä¸ã®ããã«å®è£ ããã¦ãã¾ãã</p> 377 378<pre class="code lang-python" data-lang="python" data-unlink><span class="synPreProc">from</span> numpy <span class="synPreProc">import</span> ( 379 ndarray, 380 dtype, 381 generic, 382 ... 383) 384... 385_ScalarType_co = TypeVar(<span class="synConstant">"_ScalarType_co"</span>, bound=generic, covariant=<span class="synIdentifier">True</span>) 386... 387NDArray = ndarray[Any, dtype[_ScalarType_co]] 388</pre> 389 390 391<p><code>numpy.typing.NDArray</code>ã¯<code>ndarray[Any, dtype[_ScalarType_co]]</code>ã®<a href="https://docs.python.org/ja/3/library/typing.html#type-aliases">åã¨ã¤ãªã¢ã¹</a>ã¨ãããã¨ãåããã¾ãã</p> 392 393<p>ã¾ãã<code>_ScalarType_co</code>ã¯<code>TypeVar("_ScalarType_co", bound=generic, covariant=True)</code>ã¨ãã<a href="https://docs.python.org/ja/3/library/typing.html#typevar">å夿°</a>ã§ãã</p> 394 395<ul> 396<li><code>bound=generic</code>ã¨æå®ãã¦ãã¾ãã<a href="https://numpy.org/doc/stable/reference/arrays.scalars.html">Scalars — NumPy v1.26 Manual</a>
396ã«ããã¨ã<code>numpy.generic</code>ã¯numpyã«ãããã¹ã«ã©ã¼åã®åºåºã¯ã©ã¹ã¨ã®ãã¨ã§ãã<code>_ScalarType_co</code>ã¯<code>numpy.generic</code>ã®é¨ååï¼è¦ã¯ã¹ã«ã©ã¼åï¼ãåãåãã¾ãã</li> 397<li><code>covariant=True</code>ã¨æå®ãã¦ãã¾ãã<code>A</code>ã<code>B</code>ã®é¨ååã®å ´åã<code>dtype[A]</code>ã¯<code>dtype[B]</code>ã®é¨ååã¨è¦ãªããã¾ãã</li> 398</ul> 399 400 401<p><code>ndarray[Any, dtype[_ScalarType_co]]</code>ã¨ããå®è£ ã«ã¤ãã¦ã<code>Any</code>ã¨<code>dtype[_ScalarType_co]]</code>ã¯ããããä½ã«å¯¾å¿ãã¦ããã®ãã確èªãã¦ããã¾ãã</p> 402 403<p><a href="https://github.com/numpy/numpy/blob/v1.26.2/numpy/__init__.pyi#L1488">ã³ã¼ãä¸</a>ã§ã¯ã<code>ndarray</code>ã¯ä»¥ä¸ã®ããã«å®ç¾©ããã¦ãã¾ãã</p> 404 405<pre class="code lang-python" data-lang="python" data-unlink>_DType_co = TypeVar(<span class="synConstant">"_DType_co"</span>, covariant=<span class="synIdentifier">True</span>, bound=dtype[Any]) 406... 407<span class="synComment"># </span><span class="synTodo">TODO</span><span class="synComment">: Set the `bound` to something more suitable once we</span> 408<span class="synComment"># have proper shape support</span> 409_ShapeType = TypeVar(<span class="synConstant">"_ShapeType"</span>, bound=Any) 410... 411<span class="synStatement">class</span> <span class="synIdentifier">ndarray</span>(_ArrayOrScalarCommon, Generic[_ShapeType, _DType_co]): 412 __hash__: ClassVar[<span class="synIdentifier">None</span>] 413... 414</pre> 415 416 417<p><code>_ShapeType</code>ã¯<code>ndarray</code>ã®shapeæ å ±ãä¸ãããã¾ãã 418ãã ãç¾ç¶ã®<code>_ShapeType</code>ã®å®è£ ã§ã¯<code>bound=Any</code>ã¨ãªã£ã¦ããã®ã§ã<code>Any</code>ã®é¨ååï¼è¦ã¯ãªãã§ãï¼ãåãåãã¦ãã¾ãã¾ãã 419TODOã³ã¡ã³ãã«ãããããã«ãshapeãã§ãã¯ãã§ããããã«ãªãã¨è¯ãã§ããã</p> 420 421<p>â¦ã¨ããããã§ãåã¢ããã¼ã·ã§ã³ã«ããã¦2ã¤ã以ä¸ã®ããã«æ´çãã¾ããã</p> 422 423<ul> 424<li><code>ndarray</code>ã§ã¯ShapeTypeã¨Dtypeã®2ã¤ãæå®ã§ããããã ããç¾ç¶ShapeTypeã«ã¯ä»»æã®åãæ¸¡ãã¦ãã¾ãã</li> 425<li><code>NDArray</code>ã¯<code>ndarray[Any, dtype[_ScalarType_co]]</code>ã¨ç価ã</li> 426</ul> 427 428 429<p>å人çã«ã¯ãåã¢ããã¼ã·ã§ã³ãã·ã³ãã«ã«ãªããã¨ãã<code>NDArray</code>ã使ãã®ãè¯ãããããªãããªã¨æãã¾ã<sup id="fnref:1"><a href="#fn:1" rel="footnote">1</a></sup>ã</p> 430 431<h1 id="NDArrayãå©ç¨ããåã¢ããã¼ã·ã§ã³">NDArrayãå©ç¨ããåã¢ããã¼ã·ã§ã³</h1> 432 433<p>å®éã«<code>NDArray</code>ã使ã£ã¦åã¢ããã¼ã·ã§ã³ãã¦ã¿ã¾ãããã</p> 434 435<p>ä¾ãã°ä»¥ä¸ã®ããã«åã¢ããã¼ã·ã§ã³ãå¯è½ã§ãã</p> 436 437<pre class="code lang-python" data-lang="python" data-unlink><span class="synPreProc">import</span> numpy <span class="synStatement">as</span> np 438<span class="synPreProc">import</span> numpy.typing <span class="synStatement">as</span> npt 439 440 441<span class="synStatement">def</span> <span class="synIdentifier">add_one</span>(xs: npt.NDArray) -> npt.NDArray: 442 <span class="synStatement">return</span> xs + <span class="synConstant">1</span> 443 444 445xs = np.array([<span class="synConstant">1</span>, <span class="synConstant">2</span>, <span class="synConstant">3</span>]) 446add_one(xs) 447</pre> 448 449 450 451 452<pre class="code bash" data-lang="bash" data-unlink>$ mypy exp.py 453 454Success: no issues found in 1 source file</pre> 455 456 457<p>ãã ãä¸è¨ã§ã¯<code>NDArray</code>ã®dtypeé¨åãæå®ãã¦ããªãããã<code>mypy --strict</code>ãããã¯<code>mypy --disallow-any-generics</code>ã§ã¯ä»¥ä¸ã®ããã«æããã¾ãã</p> 458 459<pre class="code" data-lang="" data-unlink>$ mypy --disallow-any-generics exp.py 460 461exp.py:5: error: Missing type parameters for generic type "npt.NDArray" [type-arg] 462Found 1 error in 1 file (checked 1 source file)</pre> 463 464 465<p>以ä¸ã®ããã«dtypeãæå®ãã¦ãããã°OKã§ãã</p> 466 467<pre class="code lang-python" data-lang="python" data-unlink><span class="synStatement">def</span> <span class="synIdentifier">add_one</span>(xs: npt.NDArray[np.int32]) -> npt.NDArray[np.int32]: 468 <span class="synStatement">return</span> xs + <span class="synConstant">1</span> 469</pre> 470 471 472<p>誤ã£ã¦<code>NDArray[np.float32]</code>åã®å¤ã渡ãã¨ãã¡ããã¨mypyãæã£ã¦ããã¾ãã</p> 473 474<pre class="code lang-python" data-lang="python" data-unlink>xs: npt.NDArray[np.float32] = np.array([<span class="synConstant">1</span>, <span class="synConstant">2</span>, <span class="synConstant">3</span>]) 475add_one(xs) 476</pre> 477 478 479 480 481<pre class="code bash" data-lang="bash" data-unlink>$ mypy --disallow-any-generics exp.py 482exp.py:10: error: Argument 1 to "add_one" has incompatible type "ndarray[Any, dtype[floating[_32Bit]]]"; expected "ndarray[Any, dtype[signedinteger[_32Bit]]]" [arg-type] 483Found 1 error in 1 file (checked 1 source file)</pre> 484 485
486<h1 id="ã¾ã¨ã">ã¾ã¨ã</h1> 487 488<p><code>numpy.typing.NDArray</code>ã®å®è£ ããã³ä½¿ãæ¹ã«ã¤ãã¦è¦ã¦ãã¾ããã</p> 489 490<p>numpy.typingã¯ä»ã«ã<code>ArrayLike</code>ã<code>DTypeLike</code>ãªã©ã®åãæä¾ãã¦ããããã¾ã使ã£ã¦ããããã¨ã§ç´ æµãªåã¢ããã¼ã·ã§ã³ãã§ãããã§ãã</p> 491<div class="footnotes"> 492<hr/> 493<ol> 494<li id="fn:1"> 495<a href="https://github.com/ramonhagenaars/nptyping">nptyping</a>ã§ã¯<code>Shape</code>åãæä¾ãã¦ãããShapeTypeãæå®ããåã¢ããã¼ã·ã§ã³ãã§ããããã§ããã¡ã³ããã³ã¹ã¯æ¢ã¾ã£ã¦ãããã§ãããã<a href="#fnref:1" rev="footnote">↩</a></li> 496</ol> 497</div> 498 499 500 501 502 503 504 505 506 507 508 509</div> 510 511 512 <footer class="entry-footer"> 513 514 <div class="entry-tags-wrapper"> 515 <div class="entry-tags"> </div> 516</div> 517 518 <p class="entry-footer-section track-inview-by-gtm" data-gtm-track-json="{"area": "finish_reading"}"> 519 <span class="author vcard"><span class="fn" data-load-nickname="1" data-user-name="sz_dr" >sz_dr</span></span> 520 <span class="entry-footer-time"><a href="https://www.szdrblog.info/entry/2023/12/22/233113"><time data-relative datetime="2023-12-22T14:31:13Z" title="2023-12-22T14:31:13Z" class="updated">2023-12-22 23:31</time></a></span> 521 522 523 524 <span class=" 525 entry-footer-subscribe 526 527 " data-test-blog-controlls-subscribe> 528 <a href="https://blog.hatena.ne.jp/sz_dr/szdr.hatenablog.com/subscribe?utm_campaign=subscribe_blog&utm_source=blogs_entry_footer&utm_medium=button"> 529 èªè ã«ãªã 530 </a> 531 </span> 532 533</p> 534 535 536 <div 537 class="hatena-star-container" 538 data-hatena-star-container 539 data-hatena-star-url="https://www.szdrblog.info/entry/2023/12/22/233113" 540 data-hatena-star-title="numpy.typing.NDArrayã®æ´ç" 541 data-hatena-star-variant="profile-icon" 542 data-hatena-star-profile-url-template="https://blog.hatena.ne.jp/{username}/" 543 ></div> 544 545 546 547<div class="social-buttons"> 548 549 550 <div class="social-button-item"> 551 <a href="https://b.hatena.ne.jp/entry/s/www.szdrblog.info/entry/2023/12/22/233113" class="hatena-bookmark-button" data-hatena-bookmark-url="https://www.szdrblog.info/entry/2023/12/22/233113" data-hatena-bookmark-layout="vertical-balloon" data-hatena-bookmark-lang="ja" title="ãã®è¨äºãã¯ã¦ãªããã¯ãã¼ã¯ã«è¿½å "><img src="https://b.st-hatena.com/images/entry-button/button-only.gif" alt="ãã®è¨äºãã¯ã¦ãªããã¯ãã¼ã¯ã«è¿½å " width="20" height="20" style="border: none;" /></a> 552 </div> 553 554 555 556 557 558 <div class="social-button-item"> 559 <a 560 class="entry-share-button entry-share-button-twitter test-share-button-twitter" 561 href="https://x.com/intent/tweet?text=numpy.typing.NDArray%E3%81%AE%E6%95%B4%E7%90%86+-+%E4%BA%BA%E9%96%93%E3%81%A0%E3%81%A3%E3%81%9F%E3%82%89%E8%80%83%E3%81%88%E3%81%A6&url=https%3A%2F%2Fwww.szdrblog.info%2Fentry%2F2023%2F12%2F22%2F233113" 562 title="Xï¼Twitterï¼ã§æç¨¿ãã" 563 ></a> 564 </div> 565 566 567 568 569 570 571</div> 572 573 574 575 <div class="customized-footer"> 576 577 578 579 580 <div class="entry-footer-modules" id="entry-footer-secondary-modules"> 581<div class="hatena-module hatena-module-related-entries" > 582 583 <!-- Hatena-Epic-has-related-entries-with-elasticsearch:true --> 584 <div class="hatena-module-title"> 585 é¢é£è¨äº 586 </div> 587 <div class="hatena-module-body"> 588 <ul class="related-entries hatena-urllist urllist-with-thumbnails"> 589 590 591 592 <li class="urllist-item related-entries-item"> 593 <div class="urllist-item-inner related-entries-item-inner"> 594 595 596 <div class="urllist-date-link related-entries-date-link"> 597 <a href="https://www.szdrblog.info/archive/2021/12/04" rel="nofollow"> 598 <time datetime="2021-12-03T15:20:41Z" title="2021å¹´12æ4æ¥"> 599 2021-12-04 600 </time> 601 </a> 602</div> 603 604 <a href="https://www.szdrblog.info/entry/2021/12/04/002041" class="urllist-title-link related-entries-title-link urllist-title related-entries-title">ã¡ãã£ã¨ãã¯ãæ¤ç´¢ã©ã³ãã³ã°ãVespaã§å®ç¾ãã</a> 605 606 607 608 609 610 611 612 <div class="urllist-entry-body related-entries-entry-body">ãã®è¨äºã¯ä½ï¼ Vespaã®æºå Vespaã«ãããã©ã³ãã³ã°ãã¸ãã¯â¦</div> 613 </div> 614 </li> 615 616</ul> 617 618 </div> 619</div> 620 </div> 621 622 623 624 </div> 625 626 <div class="comment-box js-comment-box"> 627 628 <ul class="comment js-comment"> 629 <li class="read-more-comments" style="display: none;"><a>ãã£ã¨èªã</a></li> 630 </ul> 631 632 <a class="leave-comment-title js-leave-comment-title">ã³ã¡ã³ããæ¸ã</a> 633 634 </div> 635 636 </footer> 637 638 </div> 639</article> 640 641 642 643 644 645 646
647 <!-- rakuten_ad_target_end --> 648 <!-- google_ad_section_end --> 649 650 651 652 <div class="pager pager-permalink permalink"> 653 654 655 656 <span class="pager-next"> 657 <a href="https://www.szdrblog.info/entry/2023/12/01/000250" rel="next"> 658 Vespaã§ãã¯ãã«æ¤ç´¢ã«ãããã«ãã¢ã¼ãã«â¦ 659 <span class="pager-arrow"> »</span> 660 </a> 661 </span> 662 663 </div> 664 665 666 667 668 669 670 </div> 671 </div> 672 673 <aside id="box1"> 674 <div id="box1-inner"> 675 </div> 676</aside> 677 678 </div><!-- #wrapper --> 679 680 681<aside id="box2"> 682 683 <div id="box2-inner"> 684 685 686 687<div class="hatena-module hatena-module-profile"> 688 <div class="hatena-module-title"> 689 ãããã£ã¼ã« 690 </div> 691 <div class="hatena-module-body"> 692 693 <a href="https://www.szdrblog.info/about" class="profile-icon-link"> 694 <img src="https://cdn.profile-image.st-hatena.com/users/sz_dr/profile.png?1469010251" 695 alt="id:sz_dr" class="profile-icon" /> 696 </a> 697 698 699 700 701 702 703 704 705 706 <div class="hatena-follow-button-box btn-subscribe js-hatena-follow-button-box" 707 708 > 709 710 <a href="#" class="hatena-follow-button js-hatena-follow-button"> 711 <span class="subscribing"> 712 <span class="foreground">èªè ã§ã</span> 713 <span class="background">èªè ãããã</span> 714 </span> 715 <span class="unsubscribing" data-track-name="profile-widget-subscribe-button" data-track-once> 716 <span class="foreground">èªè ã«ãªã</span> 717 <span class="background">èªè ã«ãªã</span> 718 </span> 719 </a> 720 <div class="subscription-count-box js-subscription-count-box"> 721 <i></i> 722 <u></u> 723 <span class="subscription-count js-subscription-count"> 724 </span> 725 </div> 726</div> 727 728 729 730 731 <div class="hatena-follow-button-box"> 732 <a href="https://x.com/sz_dr" title="Xï¼Twitterï¼ã¢ã«ã¦ã³ã" class="btn-twitter" data-lang="ja"> 733 <img src="https://cdn.blog.st-hatena.com/images/theme/plofile-socialize-x.svg?version=6810a7f5d0766c84edfe3b435c3a2e" alt="X"> 734 <span> 735 @sz_drããã©ãã¼ 736 </span> 737 </a> 738 </div> 739 740 741 <div class="profile-about"> 742 <a href="https://www.szdrblog.info/about">ãã®ããã°ã«ã¤ãã¦</a> 743 </div> 744 745 </div> 746</div> 747 748 749 <div class="hatena-module hatena-module-recent-entries "> 750 <div class="hatena-module-title"> 751 <a href="https://www.szdrblog.info/archive"> 752 ææ°è¨äº 753 </a> 754 </div> 755 <div class="hatena-module-body"> 756 <ul class="recent-entries hatena-urllist "> 757 758 759 760 <li class="urllist-item recent-entries-item"> 761 <div class="urllist-item-inner recent-entries-item-inner"> 762 763 764 765 <a href="https://www.szdrblog.info/entry/2023/12/22/233113" class="urllist-title-link recent-entries-title-link urllist-title recent-entries-title">numpy.typing.NDArrayã®æ´ç</a> 766 767 768 769 770 771 772 773 </div> 774 </li> 775 776 777 <li class="urllist-item recent-entries-item"> 778 <div class="urllist-item-inner recent-entries-item-inner"> 779 780 781 782 <a href="https://www.szdrblog.info/entry/2023/12/01/000250" class="urllist-title-link recent-entries-title-link urllist-title recent-entries-title">Vespaã§ãã¯ãã«æ¤ç´¢ã«ãããã«ãã¢ã¼ãã«æ¤ç´¢ã·ã¹ãã ãå®è£ ãã</a> 783 784 785 786 787 788 789 790 </div> 791 </li> 792 793 794 <li class="urllist-item recent-entries-item"> 795 <div class="urllist-item-inner recent-entries-item-inner"> 796 797 798 799 <a href="https://www.szdrblog.info/entry/2023/10/24/184638" class="urllist-title-link recent-entries-title-link urllist-title recent-entries-title">è²å æ¯æ´ããã·ã¥ãã¼ããæ¯ããæè¡</a> 800 801 802 803 804 805 806 807 </div> 808 </li> 809 810 811 <li class="urllist-item recent-entries-item"> 812 <div class="urllist-item-inner recent-entries-item-inner"> 813 814 815 816 <a href="https://www.szdrblog.info/entry/2022/12/12/002630" class="urllist-title-link recent-entries-title-link urllist-title recent-entries-title">Vespaã®Parent/Childï¼document referenceï¼ã§æ¤ç´¢æ¹åã®å¹ ãåºããã¾ã</a> 817 818 819 820 821 822 823 824 </div> 825 </li> 826 827 828 <li class="urllist-item recent-entries-item"> 829 <div class="urllist-item-inner recent-entries-item-inner"> 830 831 832 833 <a href="https://www.szdrblog.info/entry/2021/12/04/002041" class="urllist-title-link recent-entries-title-link urllist-title recent-entries-title">ã¡ãã£ã¨ãã¯ãæ¤ç´¢ã©ã³ãã³ã°ãVespaã§å®ç¾ãã</a> 834 835 836 837 838 839 840 841 </div> 842 </li> 843 844</ul> 845 846 </div> 847</div> 848 849 850 851<div class="hatena-module hatena-module-related-entries" > 852 853 <div class="hatena-module-title"> 854 é¢é£è¨äº 855 </div> 856 <div class="hatena-module-body"> 857 <ul class="related-entries hatena-urllist "> 858 859 860 861 <li class="urllist-item related-entries-item"> 862 <div class="urllist-item-inner related-entries-item-inner"> 863 864 865 866 <a href="https://www.szdrblog.info/entry/2021/04/05/194006" class="urllist-title-link related-entries-title-link urllist-title related-entries-title">ã©ã¤ãã©ãªã»ã¢ããªã±ã¼ã·ã§ã³ã§Pythonã®ãã¼ã¸ã§ã³ãæå®ããã</a> 867 868 869 870 871 872 873 874 </div> 875 </li> 876 877 878 <li class="urllist-item related-entries-item"> 879 <div class="urllist-item-inner related-entries-item-inner"> 880 881 882 883 <a href="https://www.szdrblog.info/entry/2020/08/15/002418" class="urllist-title-link related-entries-title-link urllist-title related-entries-title">ãPythonããã£ã«ã¿ãå©ç¨ãã¦Slackã«éç¥ãããã°ãæ¯ãåãã</a> 884 885 886 887 888 889 890 891 </div> 892 </li> 893 894 895 <li class="urllist-item related-entries-item"> 896 <div class="urllist-item-inner related-entries-item-inner"> 897 898 899 900 <a href="https://www.szdrblog.info/entry/2020/03/21/234314" class="urllist-title-link related-entries-title-link urllist-title related-entries-title">ãPythonãMixinã¯ã©ã¹ã®ç¶æ¿å ã§ã¤ã³ã¹ã¿ã³ã¹å¤æ°ã®å®ç¾©ãå¼·å¶ããã</a> 901 902 903 904 905 906 907 908 </div> 909 </li> 910 911</ul> 912 913 </div> 914</div> 915 916 917 918<div class="hatena-module hatena-module-entries-access-ranking" 919 data-count="3" 920 data-source="access" 921 data-category_name="" 922 data-enable_customize_format="0" 923 data-display_entry_image_size_width="100" 924 data-display_entry_image_size_height="100" 925 926 data-display_entry_category="0" 927 data-display_entry_image="0" 928 data-display_entry_image_size_width="100" 929 data-display_entry_image_size_height="100" 930 data-display_entry_body_length="0" 931 data-display_entry_date="0" 932 data-display_entry_title_length="20" 933 data-restrict_entry_title_length="0" 934 data-display_bookmark_count="0" 935 936> 937 <div class="hatena-module-title"> 938 939 注ç®è¨äº 940 941 </div> 942 <div class="hatena-module-body"> 943 944 </div> 945</div> 946 947 948 949 950<div class="hatena-module hatena-module-category"> 951 <div class="hatena-module-title"> 952 ã«ãã´ãªã¼
953 </div> 954 <div class="hatena-module-body"> 955 <ul class="hatena-urllist"> 956 957 <li> 958 <a href="https://www.szdrblog.info/archive/category/Python" class="category-Python"> 959 Python (19) 960 </a> 961 </li> 962 963 <li> 964 <a href="https://www.szdrblog.info/archive/category/%E3%81%9D%E3%81%AE%E4%BB%96" class="category-ãã®ä»"> 965 ãã®ä» (2) 966 </a> 967 </li> 968 969 <li> 970 <a href="https://www.szdrblog.info/archive/category/%E6%83%85%E5%A0%B1%E6%A4%9C%E7%B4%A2" class="category-æ å ±æ¤ç´¢"> 971 æ å ±æ¤ç´¢ (5) 972 </a> 973 </li> 974 975 <li> 976 <a href="https://www.szdrblog.info/archive/category/%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92" class="category-æ©æ¢°å¦ç¿"> 977 æ©æ¢°å¦ç¿ (33) 978 </a> 979 </li> 980 981 <li> 982 <a href="https://www.szdrblog.info/archive/category/%E8%82%B2%E5%85%90" class="category-è²å "> 983 è²å (1) 984 </a> 985 </li> 986 987 <li> 988 <a href="https://www.szdrblog.info/archive/category/%E7%B5%B1%E8%A8%88%E5%AD%A6" class="category-çµ±è¨å¦"> 989 çµ±è¨å¦ (6) 990 </a> 991 </li> 992 993 <li> 994 <a href="https://www.szdrblog.info/archive/category/Linux" class="category-Linux"> 995 Linux (1) 996 </a> 997 </li> 998 999 <li> 1000 <a href="https://www.szdrblog.info/archive/category/Java" class="category-Java"> 1001 Java (1) 1002 </a> 1003 </li> 1004 1005 <li> 1006 <a href="https://www.szdrblog.info/archive/category/TeX" class="category-TeX"> 1007 TeX (1) 1008 </a> 1009 </li> 1010 1011 <li> 1012 <a href="https://www.szdrblog.info/archive/category/%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3" class="category-ãã¶ã¤ã³"> 1013 ãã¶ã¤ã³ (3) 1014 </a> 1015 </li> 1016 1017 <li> 1018 <a href="https://www.szdrblog.info/archive/category/PowerPoint" class="category-PowerPoint"> 1019 PowerPoint (1) 1020 </a> 1021 </li> 1022 1023 </ul> 1024 </div> 1025</div> 1026 1027 1028 1029 1030<div class="hatena-module hatena-module-archive" data-archive-type="default" data-archive-url="https://www.szdrblog.info/archive"> 1031 <div class="hatena-module-title"> 1032 <a href="https://www.szdrblog.info/archive">æå¥ã¢ã¼ã«ã¤ã</a> 1033 </div> 1034 <div class="hatena-module-body"> 1035 1036 1037 <ul class="hatena-urllist"> 1038 1039 <li class="archive-module-year archive-module-year-hidden" data-year="2023"> 1040 <div class="archive-module-button"> 1041 <span class="archive-module-hide-button">â¼</span> 1042 <span class="archive-module-show-button">â¶</span> 1043 </div> 1044 <a href="https://www.szdrblog.info/archive/2023" class="archive-module-year-title archive-module-year-2023"> 1045 2023 1046 </a> 1047 <ul class="archive-module-months"> 1048 1049 <li class="archive-module-month"> 1050 <a href="https://www.szdrblog.info/archive/2023/12" class="archive-module-month-title archive-module-month-2023-12"> 1051 2023 / 12 1052 </a> 1053 </li> 1054 1055 <li class="archive-module-month"> 1056 <a href="https://www.szdrblog.info/archive/2023/10" class="archive-module-month-title archive-module-month-2023-10"> 1057 2023 / 10 1058 </a> 1059 </li> 1060 1061 </ul> 1062 </li> 1063 1064 <li class="archive-module-year archive-module-year-hidden" data-year="2022"> 1065 <div class="archive-module-button"> 1066 <span class="archive-module-hide-button">â¼</span> 1067 <span class="archive-module-show-button">â¶</span> 1068 </div> 1069 <a href="https://www.szdrblog.info/archive/2022" class="archive-module-year-title archive-module-year-2022"> 1070 2022 1071 </a> 1072 <ul class="archive-module-months"> 1073 1074 <li class="archive-module-month"> 1075 <a href="https://www.szdrblog.info/archive/2022/12" class="archive-module-month-title archive-module-month-2022-12"> 1076 2022 / 12 1077 </a> 1078 </li> 1079 1080 </ul> 1081 </li> 1082 1083 <li class="archive-module-year archive-module-year-hidden" data-year="2021"> 1084 <div class="archive-module-button">
1085 <span class="archive-module-hide-button">â¼</span> 1086 <span class="archive-module-show-button">â¶</span> 1087 </div> 1088 <a href="https://www.szdrblog.info/archive/2021" class="archive-module-year-title archive-module-year-2021"> 1089 2021 1090 </a> 1091 <ul class="archive-module-months"> 1092 1093 <li class="archive-module-month"> 1094 <a href="https://www.szdrblog.info/archive/2021/12" class="archive-module-month-title archive-module-month-2021-12"> 1095 2021 / 12 1096 </a> 1097 </li> 1098 1099 <li class="archive-module-month"> 1100 <a href="https://www.szdrblog.info/archive/2021/04" class="archive-module-month-title archive-module-month-2021-4"> 1101 2021 / 4 1102 </a> 1103 </li> 1104 1105 <li class="archive-module-month"> 1106 <a href="https://www.szdrblog.info/archive/2021/01" class="archive-module-month-title archive-module-month-2021-1"> 1107 2021 / 1 1108 </a> 1109 </li> 1110 1111 </ul> 1112 </li> 1113 1114 <li class="archive-module-year archive-module-year-hidden" data-year="2020"> 1115 <div class="archive-module-button"> 1116 <span class="archive-module-hide-button">â¼</span> 1117 <span class="archive-module-show-button">â¶</span> 1118 </div> 1119 <a href="https://www.szdrblog.info/archive/2020" class="archive-module-year-title archive-module-year-2020"> 1120 2020 1121 </a> 1122 <ul class="archive-module-months"> 1123 1124 <li class="archive-module-month"> 1125 <a href="https://www.szdrblog.info/archive/2020/12" class="archive-module-month-title archive-module-month-2020-12"> 1126 2020 / 12 1127 </a> 1128 </li> 1129 1130 <li class="archive-module-month"> 1131 <a href="https://www.szdrblog.info/archive/2020/11" class="archive-module-month-title archive-module-month-2020-11"> 1132 2020 / 11 1133 </a> 1134 </li> 1135 1136 <li class="archive-module-month"> 1137 <a href="https://www.szdrblog.info/archive/2020/08" class="archive-module-month-title archive-module-month-2020-8"> 1138 2020 / 8 1139 </a> 1140 </li> 1141 1142 <li class="archive-module-month"> 1143 <a href="https://www.szdrblog.info/archive/2020/03" class="archive-module-month-title archive-module-month-2020-3"> 1144 2020 / 3 1145 </a> 1146 </li> 1147 1148 </ul> 1149 </li> 1150 1151 <li class="archive-module-year archive-module-year-hidden" data-year="2019"> 1152 <div class="archive-module-button"> 1153 <span class="archive-module-hide-button">â¼</span> 1154 <span class="archive-module-show-button">â¶</span> 1155 </div> 1156 <a href="https://www.szdrblog.info/archive/2019" class="archive-module-year-title archive-module-year-2019"> 1157 2019 1158 </a> 1159 <ul class="archive-module-months"> 1160 1161 <li class="archive-module-month"> 1162 <a href="https://www.szdrblog.info/archive/2019/12" class="archive-module-month-title archive-module-month-2019-12"> 1163 2019 / 12 1164 </a> 1165 </li> 1166 1167 </ul> 1168 </li> 1169 1170 <li class="archive-module-year archive-module-year-hidden" data-year="2018"> 1171 <div class="archive-module-button"> 1172 <span class="archive-module-hide-button">â¼</span>
1173 <span class="archive-module-show-button">â¶</span> 1174 </div> 1175 <a href="https://www.szdrblog.info/archive/2018" class="archive-module-year-title archive-module-year-2018"> 1176 2018 1177 </a> 1178 <ul class="archive-module-months"> 1179 1180 <li class="archive-module-month"> 1181 <a href="https://www.szdrblog.info/archive/2018/12" class="archive-module-month-title archive-module-month-2018-12"> 1182 2018 / 12 1183 </a> 1184 </li> 1185 1186 <li class="archive-module-month"> 1187 <a href="https://www.szdrblog.info/archive/2018/11" class="archive-module-month-title archive-module-month-2018-11"> 1188 2018 / 11 1189 </a> 1190 </li> 1191 1192 <li class="archive-module-month"> 1193 <a href="https://www.szdrblog.info/archive/2018/07" class="archive-module-month-title archive-module-month-2018-7"> 1194 2018 / 7 1195 </a> 1196 </li> 1197 1198 <li class="archive-module-month"> 1199 <a href="https://www.szdrblog.info/archive/2018/02" class="archive-module-month-title archive-module-month-2018-2"> 1200 2018 / 2 1201 </a> 1202 </li> 1203 1204 </ul> 1205 </li> 1206 1207 <li class="archive-module-year archive-module-year-hidden" data-year="2017"> 1208 <div class="archive-module-button"> 1209 <span class="archive-module-hide-button">â¼</span> 1210 <span class="archive-module-show-button">â¶</span> 1211 </div> 1212 <a href="https://www.szdrblog.info/archive/2017" class="archive-module-year-title archive-module-year-2017"> 1213 2017 1214 </a> 1215 <ul class="archive-module-months"> 1216 1217 <li class="archive-module-month"> 1218 <a href="https://www.szdrblog.info/archive/2017/12" class="archive-module-month-title archive-module-month-2017-12"> 1219 2017 / 12 1220 </a> 1221 </li> 1222 1223 <li class="archive-module-month"> 1224 <a href="https://www.szdrblog.info/archive/2017/11" class="archive-module-month-title archive-module-month-2017-11"> 1225 2017 / 11 1226 </a> 1227 </li> 1228 1229 <li class="archive-module-month"> 1230 <a href="https://www.szdrblog.info/archive/2017/05" class="archive-module-month-title archive-module-month-2017-5"> 1231 2017 / 5 1232 </a> 1233 </li> 1234 1235 <li class="archive-module-month"> 1236 <a href="https://www.szdrblog.info/archive/2017/03" class="archive-module-month-title archive-module-month-2017-3"> 1237 2017 / 3 1238 </a> 1239 </li> 1240 1241 <li class="archive-module-month"> 1242 <a href="https://www.szdrblog.info/archive/2017/02" class="archive-module-month-title archive-module-month-2017-2"> 1243 2017 / 2 1244 </a> 1245 </li> 1246 1247 <li class="archive-module-month"> 1248 <a href="https://www.szdrblog.info/archive/2017/01" class="archive-module-month-title archive-module-month-2017-1"> 1249 2017 / 1 1250 </a> 1251 </li> 1252 1253 </ul> 1254 </li> 1255 1256 <li class="archive-module-year archive-module-year-hidden" data-year="2016"> 1257 <div class="archive-module-button"> 1258 <span class="archive-module-hide-button">â¼</span> 1259 <span class="archive-module-show-button">â¶</span> 1260 </div> 1261 <a href="https://www.szdrblog.info/archive/2016" class="archive-module-year-title archive-module-year-2016"> 1262 2016 1263 </a> 1264 <ul class="archive-module-months"> 1265 1266 <li class="archive-module-month"> 1267 <a href="https://www.szdrblog.info/archive/2016/12" class="archive-module-month-title archive-module-month-2016-12"> 1268 2016 / 12 1269 </a> 1270 </li> 1271 1272 <li class="archive-module-month"> 1273 <a href="https://www.szdrblog.info/archive/2016/11" class="archive-module-month-title archive-module-month-2016-11"> 1274 2016 / 11 1275 </a> 1276 </li> 1277 1278 <li class="archive-module-month"> 1279 <a href="https://www.szdrblog.info/archive/2016/10" class="archive-module-month-title archive-module-month-2016-10"> 1280 2016 / 10 1281 </a> 1282 </li> 1283 1284 <li class="archive-module-month"> 1285 <a href="https://www.szdrblog.info/archive/2016/09" class="archive-module-month-title archive-module-month-2016-9"> 1286 2016 / 9 1287 </a> 1288 </li> 1289 1290 <li class="archive-module-month"> 1291 <a href="https://www.szdrblog.info/archive/2016/08" class="archive-module-month-title archive-module-month-2016-8"> 1292 2016 / 8 1293 </a> 1294 </li> 1295 1296 <li class="archive-module-month"> 1297 <a href="https://www.szdrblog.info/archive/2016/07" class="archive-module-month-title archive-module-month-2016-7"> 1298 2016 / 7 1299 </a> 1300 </li> 1301 1302 <li class="archive-module-month"> 1303 <a href="https://www.szdrblog.info/archive/2016/06" class="archive-module-month-title archive-module-month-2016-6"> 1304 2016 / 6 1305 </a> 1306 </li> 1307 1308 </ul> 1309 </li> 1310 1311 </ul> 1312 1313 1314 </div> 1315</div> 1316 1317 1318 </div> 1319</aside> 1320 1321 1322 </div> 1323</div> 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 </div> 1334 </div> 1335 1336<footer id="footer" data-brand="hatenablog"> 1337 <div id="footer-inner"> 1338 1339 <div style="display:none !important" class="guest-footer js-guide-register test-blogs-register-guide" data-action="guide
1339-register"> 1340 <div class="guest-footer-content"> 1341 <h3>ã¯ã¦ãªããã°ãã¯ããããï¼</h3> 1342 <p>sz_drããã¯ãã¯ã¦ãªããã°ã使ã£ã¦ãã¾ããããªããã¯ã¦ãªããã°ãã¯ããã¦ã¿ã¾ãããï¼</p> 1343 <div class="guest-footer-btn-container"> 1344 <div class="guest-footer-btn"> 1345 <a class="btn btn-register js-inherit-ga" href="https://blog.hatena.ne.jp/register?via=200227" target="_blank">ã¯ã¦ãªããã°ãã¯ãããï¼ç¡æï¼</a> 1346 </div> 1347 <div class="guest-footer-btn js-hide-on-smartphone-app"> 1348 <a href="https://hatena.blog/guide" target="_blank">ã¯ã¦ãªããã°ã¨ã¯</a> 1349 </div> 1350 </div> 1351 </div> 1352</div> 1353 1354 1355 <address class="footer-address"> 1356 <a href="https://www.szdrblog.info/"> 1357 <img src="https://cdn.image.st-hatena.com/image/square/2add95f3d3869dbec2cf4c52d706c470c1a3367b/backend=imagemagick;height=128;version=1;width=128/https%3A%2F%2Fcdn.user.blog.st-hatena.com%2Fcustom_blog_icon%2F107076361%2F1514243901786506" width="16" height="16" alt="人éã ã£ããèãã¦"/> 1358 <span class="footer-address-name">人éã ã£ããèãã¦</span> 1359 </a> 1360 </address> 1361 <p class="services"> 1362 Powered by <a href="https://hatena.blog/">Hatena Blog</a> 1363 | 1364 <a href="https://blog.hatena.ne.jp/-/abuse_report?target_url=https%3A%2F%2Fwww.szdrblog.info%2Fentry%2F2023%2F12%2F22%2F233113" class="report-abuse-link test-report-abuse-link" target="_blank">ããã°ãå ±åãã</a> 1365 </p> 1366 </div> 1367</footer> 1368 1369 1370 1371
1371<script async src="https://s.hatena.ne.jp/js/widget/star.js"></script>
1371 1372 1373 1374
1374<script> 1375 if (typeof window.Hatena === 'undefined') { 1376 window.Hatena = {}; 1377 } 1378 if (!Hatena.hasOwnProperty('Star')) { 1379 Hatena.Star = { 1380 VERSION: 2, 1381 }; 1382 } 1383 </script>
1383 1384 1385 1386 1387 1388 1389<div class="quote-box"> 1390 <div class="tooltip-quote tooltip-quote-stock"> 1391 <i class="blogicon-quote" title="å¼ç¨ãã¹ããã¯"></i> 1392 </div> 1393 <div class="tooltip-quote tooltip-quote-tweet js-tooltip-quote-tweet"> 1394 <a class="js-tweet-quote" target="_blank" data-track-name="quote-tweet" data-track-once> 1395 <img src="https://cdn.blog.st-hatena.com/images/admin/quote/quote-x-icon.svg?version=6810a7f5d0766c84edfe3b435c3a2e" title="å¼ç¨ãã¦æç¨¿ãã" > 1396 </a> 1397 </div> 1398</div> 1399 1400<div class="quote-stock-panel" id="quote-stock-message-box" style="position: absolute; z-index: 3000"> 1401 <div class="message-box" id="quote-stock-succeeded-message" style="display: none"> 1402 <p>å¼ç¨ãã¹ããã¯ãã¾ãã</p> 1403 <button class="btn btn-primary" id="quote-stock-show-editor-button" data-track-name="curation-quote-edit-button">ã¹ããã¯ä¸è¦§ãè¦ã</button> 1404 <button class="btn quote-stock-close-message-button">éãã</button> 1405 </div> 1406 1407 <div class="message-box" id="quote-login-required-message" style="display: none"> 1408 <p>å¼ç¨ããã«ã¯ã¾ããã°ã¤ã³ãã¦ãã ãã</p> 1409 <button class="btn btn-primary" id="quote-login-button">ãã°ã¤ã³</button> 1410 <button class="btn quote-stock-close-message-button">éãã</button> 1411 </div> 1412 1413 <div class="error-box" id="quote-stock-failed-message" style="display: none"> 1414 <p>å¼ç¨ãã¹ããã¯ã§ãã¾ããã§ãããå度ã試ããã ãã</p> 1415 <button class="btn quote-stock-close-message-button">éãã</button> 1416 </div> 1417 1418 <div class="error-box" id="unstockable-quote-message-box" style="display: none; position: absolute; z-index: 3000;"> 1419 <p>éå®å ¬éè¨äºã®ããå¼ç¨ã§ãã¾ããã</p> 1420 </div> 1421</div> 1422
1423<script type="x-underscore-template" id="js-requote-button-template"> 1424 <div class="requote-button js-requote-button"> 1425 <button class="requote-button-btn tipsy-top" title="å¼ç¨ãã"><i class="blogicon-quote"></i></button> 1426 </div> 1427</script>
1427 1428 1429 1430 1431 1432 <div id="hidden-subscribe-button" style="display: none;"> 1433 <div class="hatena-follow-button-box btn-subscribe js-hatena-follow-button-box" 1434 1435 > 1436 1437 <a href="#" class="hatena-follow-button js-hatena-follow-button"> 1438 <span class="subscribing"> 1439 <span class="foreground">èªè ã§ã</span> 1440 <span class="background">èªè ãããã</span> 1441 </span> 1442 <span class="unsubscribing" data-track-name="profile-widget-subscribe-button" data-track-once> 1443 <span class="foreground">èªè ã«ãªã</span> 1444 <span class="background">èªè ã«ãªã</span> 1445 </span> 1446 </a> 1447 <div class="subscription-count-box js-subscription-count-box"> 1448 <i></i> 1449 <u></u> 1450 <span class="subscription-count js-subscription-count"> 1451 </span> 1452 </div> 1453</div> 1454 1455 </div> 1456 1457 1458 1459 1460 1461 1462 1463 1464
1464<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
1464 1465
1466<script src="https://b.st-hatena.com/js/bookmark_button.js" charset="utf-8" async="async"></script>
1466 1467 1468
1469<script type="text/javascript" src="https://cdn.blog.st-hatena.com/js/external/jquery.min.js?v=1.12.4&version=6810a7f5d0766c84edfe3b435c3a2e"></script>
1469 1470 1471 1472 1473 1474 1475 1476
1477<script src="https://cdn.blog.st-hatena.com/js/texts-ja.js?version=6810a7f5d0766c84edfe3b435c3a2e"></script>
1477 1478 1479 1480 1481
1481<script id="vendors-js" data-env="production" src="https://cdn.blog.st-hatena.com/js/vendors.js?version=6810a7f5d0766c84edfe3b435c3a2e" crossorigin="anonymous"></script>
1481 1482
1483<script id="hatenablog-js" data-env="production" src="https://cdn.blog.st-hatena.com/js/hatenablog.js?version=6810a7f5d0766c84edfe3b435c3a2e" crossorigin="anonymous" data-page-id="entry"></script>
1483 1484 1485 1486
1486<script>Hatena.Diary.GlobalHeader.init()</script>
1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 </body> 1503</html> 1504
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.