<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>TECH on Yaohong</title><link>https://yh.timefriend.vip/tags/tech/</link><description>Recent content in TECH on Yaohong</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sat, 23 Jan 2021 16:29:20 +0800</lastBuildDate><atom:link href="https://yh.timefriend.vip/tags/tech/index.xml" rel="self" type="application/rss+xml"/><item><title>How does warp Perspective work?</title><link>https://yh.timefriend.vip/post/machinelearning/warpperspective/</link><pubDate>Sat, 23 Jan 2021 16:29:20 +0800</pubDate><guid>https://yh.timefriend.vip/post/machinelearning/warpperspective/</guid><description>&lt;h1 id="how-does-warp-perspective-work"&gt;How does warp Perspective work?&lt;/h1&gt;&#10;&lt;h2 id="1warp-perspective-with-cv2"&gt;1.warp perspective with cv2&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-py" data-lang="py"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;__name__&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;==&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#34;__main__&amp;#34;&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# coordinate: (y,x), left_top, right_rop, left_bottom, right_bottom&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; src &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;float32([[&lt;span style="color:#bd93f9"&gt;20.0&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;0.0&lt;/span&gt;], [&lt;span style="color:#bd93f9"&gt;20.0&lt;/span&gt; ,&lt;span style="color:#bd93f9"&gt;315.0&lt;/span&gt;], [&lt;span style="color:#bd93f9"&gt;186.0&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;17.2&lt;/span&gt;], [&lt;span style="color:#bd93f9"&gt;181.0&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;299.0&lt;/span&gt;]])&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; dst &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;float32([[&lt;span style="color:#bd93f9"&gt;0.0&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;0.0&lt;/span&gt;], [&lt;span style="color:#bd93f9"&gt;0.0&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;315.0&lt;/span&gt;], [&lt;span style="color:#bd93f9"&gt;202.0&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;7.0&lt;/span&gt;], [&lt;span style="color:#bd93f9"&gt;200.0&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;306.0&lt;/span&gt;]])&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# load image&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; warp_img &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv2&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;imread(&lt;span style="color:#f1fa8c"&gt;&amp;#34;./my_wide_angle_orig.jpg&amp;#34;&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; warp_img &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv2&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;cvtColor(warp_img, cv2&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;COLOR_BGR2RGB)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;warp_img: &amp;#34;&lt;/span&gt;,warp_img&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape) &lt;span style="color:#6272a4"&gt;# (638, 958, 3)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; width &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;int&lt;/span&gt;(warp_img&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape[&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;]&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; height &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;int&lt;/span&gt;(warp_img&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;]&lt;span style="color:#ff79c6"&gt;/&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; warp_img &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv2&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;resize(warp_img, (width,height), interpolation&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt;cv2&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;INTER_LINEAR)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;warp_img.shape:&amp;#34;&lt;/span&gt;,warp_img&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape) &lt;span style="color:#6272a4"&gt;# (212, 319, 3)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;## orig image&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; plt&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;subplot(&lt;span style="color:#bd93f9"&gt;121&lt;/span&gt;),&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; plt&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;title(&lt;span style="color:#f1fa8c"&gt;&amp;#34;warp_img&amp;#34;&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; plt&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;imshow(warp_img)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#6272a4"&gt;# cv2 warp perspective&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cv2_matrix &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv2&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;getPerspectiveTransform(src, dst)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;cv2_matrix:&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\n&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;,cv2_matrix)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cv2_fix_img &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; cv2&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;warpPerspective(warp_img, cv2_matrix, (width,height))&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; plt&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;subplot(&lt;span style="color:#bd93f9"&gt;122&lt;/span&gt;),&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; plt&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;title(&lt;span style="color:#f1fa8c"&gt;&amp;#39;cv2_fix_img&amp;#39;&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; plt&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;imshow(cv2_fix_img) &#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; plt&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;show()&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="2implement-it-in-our-way"&gt;2.Implement it in our way&lt;/h2&gt;&#10;&lt;h3 id="step1-calculate-warp-matrix"&gt;Step1 calculate warp matrix:&lt;/h3&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-py" data-lang="py"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;my_warp_matrix reshape:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [[ &lt;span style="color:#bd93f9"&gt;1.13729359e+00&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;8.24289989e-18&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;2.27458717e+01&lt;/span&gt;]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;6.10786436e-02&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;9.69843448e-01&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;1.22157287e+00&lt;/span&gt;]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;3.44743207e-04&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;7.38466280e-05&lt;/span&gt; &lt;span style="color:#bd93f9"&gt;1.00000000e+00&lt;/span&gt;]]&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="step2-use-the-warp-matrix-to-warp-perspective"&gt;Step2. use the warp matrix to warp perspective&lt;/h3&gt;&#10;&lt;p&gt;codes are:&lt;/p&gt;</description></item><item><title>Differences On Numpyp.Floor And Python Int method.md</title><link>https://yh.timefriend.vip/post/python/differencesonnpfloorandint/</link><pubDate>Thu, 31 Dec 2020 12:35:20 +0800</pubDate><guid>https://yh.timefriend.vip/post/python/differencesonnpfloorandint/</guid><description>&lt;h1 id="differences-on-numpypfloor-and-python-int-methodmd"&gt;Differences On Numpyp.Floor And Python Int method.md&lt;/h1&gt;&#10;&lt;p&gt;&lt;code&gt;numpy.floor&lt;/code&gt; Return the floor of the input.&lt;/p&gt;&#10;&lt;p&gt;The floor of the scalar x is the largest integer i, such that i &amp;lt;= x;&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;np.floor()&lt;/code&gt; will not change its data type;&lt;/p&gt;&#10;&lt;p&gt;Example:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-py" data-lang="py"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; numpy &lt;span style="color:#ff79c6"&gt;as&lt;/span&gt; np&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;tmp_list &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;list&lt;/span&gt;([&lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;3.3&lt;/span&gt;, &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;2.22&lt;/span&gt;, &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;1.56&lt;/span&gt;, &lt;span style="color:#ff79c6"&gt;-&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;0.56&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;0.56&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;1.56&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;2.22&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;3.33&lt;/span&gt;])&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;tmp_list &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;array(tmp_list)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;type(tmp_list[0]):&amp;#34;&lt;/span&gt;, &lt;span style="color:#8be9fd;font-style:italic"&gt;type&lt;/span&gt;(tmp_list[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;]) )&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;type(np.floor(tmp_list)[0]):&amp;#34;&lt;/span&gt;, &lt;span style="color:#8be9fd;font-style:italic"&gt;type&lt;/span&gt;(np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;floor(tmp_list)[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;]) )&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;np.floor(tmp_list):&amp;#34;&lt;/span&gt;, np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;floor(tmp_list))&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Output:&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# type(tmp_list[0]): &amp;lt;class &amp;#39;numpy.float64&amp;#39;&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# type(np.floor(tmp_list)[0]): &amp;lt;class &amp;#39;numpy.float64&amp;#39;&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# np.floor(tmp_list): [-4. -3. -2. -1. 0. 1. 2. 3.]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;for&lt;/span&gt; x &lt;span style="color:#ff79c6"&gt;in&lt;/span&gt; tmp_list:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#9;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;x:&amp;#34;&lt;/span&gt;,x,&lt;span style="color:#f1fa8c"&gt;&amp;#34;,int:&amp;#34;&lt;/span&gt;,&lt;span style="color:#8be9fd;font-style:italic"&gt;int&lt;/span&gt;(x)) &#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# output:&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# x: -3.3 ,int: -3&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# x: -2.22 ,int: -2&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# x: -1.56 ,int: -1&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# x: -0.56 ,int: 0&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# x: 0.56 ,int: 0&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# x: 1.56 ,int: 1&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# x: 2.22 ,int: 2&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# x: 3.33 ,int: 3&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;For floating point numbers, &lt;code&gt;int()&lt;/code&gt; will truncates toward zero, so &lt;code&gt;-0.1&lt;/code&gt; will by truncate to &lt;code&gt;0&lt;/code&gt;, &lt;code&gt;-1.8&lt;/code&gt; to &lt;code&gt;-1&lt;/code&gt;; And its data type will be changed to &lt;code&gt;&amp;lt;class 'int'&amp;gt;&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>How does numpy add two arrays with different shapes?</title><link>https://yh.timefriend.vip/post/python/numpyadd/</link><pubDate>Sun, 27 Dec 2020 19:54:20 +0800</pubDate><guid>https://yh.timefriend.vip/post/python/numpyadd/</guid><description>&lt;h1 id="how-does-numpy-add-two-arrays-with-different-shapes"&gt;How does numpy add two arrays with different shapes?&lt;/h1&gt;&#10;&lt;p&gt;Numpy has a &lt;code&gt;add&lt;/code&gt; method which add two numpy array.&lt;/p&gt;&#10;&lt;p&gt;Arithmetic operation &lt;code&gt;+&lt;/code&gt; does the same thing as &lt;code&gt;Numpy.add&lt;/code&gt;;&lt;/p&gt;&#10;&lt;h2 id="1add-a-same-shapes-array"&gt;1.Add a same shapes array&lt;/h2&gt;&#10;&lt;p&gt;Let&amp;rsquo;s see a example.&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-py" data-lang="py"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; numpy &lt;span style="color:#ff79c6"&gt;as&lt;/span&gt; np&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;list1 &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;array([&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;]);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;list2&lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;array([&lt;span style="color:#bd93f9"&gt;10&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;20&lt;/span&gt;, &lt;span style="color:#bd93f9"&gt;30&lt;/span&gt;]);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;list1:&amp;#34;&lt;/span&gt;,list1,&lt;span style="color:#f1fa8c"&gt;&amp;#34;list2:&amp;#34;&lt;/span&gt;,list2);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Print: list1: [1 2 3] list2: [10 20 30]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;added_list &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; list1 &lt;span style="color:#ff79c6"&gt;+&lt;/span&gt; list2;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;added_list.shape:&amp;#34;&lt;/span&gt;,added_list&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape,&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\n&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;added_list:&amp;#34;&lt;/span&gt;,added_list);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Print:&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# added_list.shape: (3,) &lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# added_list: [11 22 33]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;added_list &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;add(list1, list2);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;added_list.shape:&amp;#34;&lt;/span&gt;,added_list&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape,&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;\n&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;added_list:&amp;#34;&lt;/span&gt;,added_list);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Print:&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# added_list.shape: (3,) &lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# added_list: [11 22 33]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="2add-a-different-shape-array"&gt;2.Add a different shape array&lt;/h2&gt;&#10;&lt;p&gt;But what happen if two array have different shapes?&lt;/p&gt;</description></item><item><title>Understanding Transpose</title><link>https://yh.timefriend.vip/post/python/numpytranspose/</link><pubDate>Tue, 22 Dec 2020 19:55:20 +0800</pubDate><guid>https://yh.timefriend.vip/post/python/numpytranspose/</guid><description>&lt;h1 id="understanding-numpy-transpose"&gt;Understanding Numpy Transpose&lt;/h1&gt;&#10;&lt;p&gt;1.Transpose is to switch the row and column indices of the matrix A;&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-py" data-lang="py"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;x &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;arange(&lt;span style="color:#bd93f9"&gt;8&lt;/span&gt;)&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;reshape((&lt;span style="color:#bd93f9"&gt;4&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;))&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(x)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(x&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;T)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# output:&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [[0 1] # x&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [2 3]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [4 5]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [6 7]]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [[0 2 4 6] # x.T&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [1 3 5 7]]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;x &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;arange(&lt;span style="color:#bd93f9"&gt;9&lt;/span&gt;)&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;reshape((&lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;))&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(x)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(x&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;T)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(x&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape, x&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;T&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# output:&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [[0 1 2]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [3 4 5]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [6 7 8]]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [[0 3 6]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [1 4 7]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [2 5 8]]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;x &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;arange(&lt;span style="color:#bd93f9"&gt;8&lt;/span&gt;)&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;reshape((&lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;4&lt;/span&gt;))&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(x)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(x&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;T)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# output:&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [[0 1 2 3]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [4 5 6 7]]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [[0 4]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [1 5]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [2 6]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# [3 7]]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If the array has only one dimension, the transpose of the array will not change;&lt;/p&gt;</description></item><item><title>Understanding Numpy expand_dims</title><link>https://yh.timefriend.vip/post/python/numpy_shape_expand_dim/</link><pubDate>Mon, 30 Nov 2020 19:55:20 +0800</pubDate><guid>https://yh.timefriend.vip/post/python/numpy_shape_expand_dim/</guid><description>&lt;h1 id="understanding-numpy-expand_dims"&gt;Understanding Numpy expand_dims&lt;/h1&gt;&#10;&lt;p&gt;Shape &lt;code&gt;(n,)&lt;/code&gt;(n is a number) means it has only one dimension.&lt;/p&gt;&#10;&lt;p&gt;The number of values is shape brackets represents the number of dimensions.&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-py" data-lang="py"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;import&lt;/span&gt; numpy &lt;span style="color:#ff79c6"&gt;as&lt;/span&gt; np&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;arr &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;array([&lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;2&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;3&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;4&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;5&lt;/span&gt;]);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;arr shape: &amp;#34;&lt;/span&gt;,arr&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;arr shape: &amp;#34;&lt;/span&gt;,arr)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;arr2 &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;expand_dims(arr, &lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;expand_dims axis=0, shape:&amp;#34;&lt;/span&gt;,arr2&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;expand_dims axis=0, arr2:&amp;#34;&lt;/span&gt;,arr2)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;arr2 &lt;span style="color:#ff79c6"&gt;=&lt;/span&gt; np&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;expand_dims(arr, &lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;expand_dims axis=1, shape:&amp;#34;&lt;/span&gt;,arr2&lt;span style="color:#ff79c6"&gt;.&lt;/span&gt;shape)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;print&lt;/span&gt;(&lt;span style="color:#f1fa8c"&gt;&amp;#34;expand_dims axis=1, arr2:&amp;#34;&lt;/span&gt;,arr2)&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;output:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;arr shape: (5,) &#10;arr shape: [1 2 3 4 5]&#10;expand_dims axis=0, shape: (1, 5)&#10;expand_dims axis=0, arr2: [[1 2 3 4 5]]&#10;expand_dims axis=1, shape: (5, 1)&#10;expand_dims axis=1, arr2: [[1]&#10; [2]&#10; [3]&#10; [4]&#10; [5]]&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="numpyexpand_dims"&gt;numpy.expand_dims&lt;/h2&gt;&#10;&lt;p&gt;&lt;code&gt;expand_dims&lt;/code&gt; looks like inserting 1 into the shape brackets base on the axis value;&lt;/p&gt;</description></item><item><title>Sed</title><link>https://yh.timefriend.vip/post/linux/sed/</link><pubDate>Sat, 28 Nov 2020 21:42:20 +0800</pubDate><guid>https://yh.timefriend.vip/post/linux/sed/</guid><description>&lt;h1 id="sed"&gt;Sed&lt;/h1&gt;&#10;&lt;p&gt;sed is a steam editor. sed treats multiple input files as one long stream.&lt;/p&gt;&#10;&lt;p&gt;The full format for invoking sed is:&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;sed OPTIONS... [SCRIPT] [INPUTFILE...]&lt;/code&gt;&lt;/p&gt;&#10;&lt;p&gt;Some common OPTIONS:&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;-n&lt;/code&gt; to suppress output, &lt;code&gt;sed -n '45p' file.txt&lt;/code&gt; this command prints only line 45 of input file;&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;-e&lt;/code&gt; options are used to specify a script expression, such as &lt;code&gt;sed -e 's/hello/world/' input.txt &amp;gt; output.txt&lt;/code&gt;;&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;-f&lt;/code&gt; specify a script file, such as &lt;code&gt;sed -f myscript.sed input.txt &amp;gt; output.txt&lt;/code&gt;&lt;/p&gt;</description></item><item><title>Simple Tree command</title><link>https://yh.timefriend.vip/post/other/treeafolder/</link><pubDate>Sat, 28 Nov 2020 10:15:20 +0800</pubDate><guid>https://yh.timefriend.vip/post/other/treeafolder/</guid><description>&lt;h1 id="simple-tree-command"&gt;Simple Tree command&lt;/h1&gt;&#10;&lt;p&gt;Using the follow command can view current folder tree:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;find . -print| sed -e &amp;#39;s;[^/]*/;|____;g;s;____|; |;g&amp;#39;&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;output&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;$ find . -print| sed -e &amp;#39;s;[^/]*/;|____;g;s;____|; |;g&amp;#39;&#10;.&#10;|____composer.lock&#10;|____LICENSE&#10;|____README.md&#10;|____.gitignore&#10;|____build-phar.php&#10;|____.git&#10;| |____config&#10;| |____objects&#10;...&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Below command only descend at most 2 directory levels:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;find . -maxdepth 2 -e -print | sed -e &amp;#39;s;[^/]*/;|____;g;s;____|; |;g&amp;#39;&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;REFERENCE&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://osxdaily.com/2016/09/09/view-folder-tree-terminal-mac-os-tree-equivalent/"&gt;Using a Mac Equivalent of Unix “tree” Command to View Folder Trees at Terminal&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Quickly host your hugo web on Gitlab</title><link>https://yh.timefriend.vip/post/other/hugoblogdeployongitlab/</link><pubDate>Thu, 19 Nov 2020 13:41:20 +0800</pubDate><guid>https://yh.timefriend.vip/post/other/hugoblogdeployongitlab/</guid><description>&lt;h1 id="quickly-host-your-hugo-web-on-gitlab"&gt;Quickly host your hugo web on Gitlab&lt;/h1&gt;&#10;&lt;p&gt;Quickly host your hugo web on gitlab.&lt;/p&gt;&#10;&lt;h2 id="1login-gitlab"&gt;1.Login gitlab&lt;/h2&gt;&#10;&lt;p&gt;&lt;a href="https://gitlab.com/users/sign_in"&gt;Gitlab&lt;/a&gt;&lt;/p&gt;&#10;&lt;h2 id="2click-new-project-after-login"&gt;2.click &lt;code&gt;new project&lt;/code&gt; after login&lt;/h2&gt;&#10;&lt;p&gt;Click &lt;code&gt;Create from template&lt;/code&gt; in &lt;code&gt;Create new project&lt;/code&gt; and use &amp;ldquo;Hugo template&amp;rdquo;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://yh.timefriend.vip/img/other/gitlab_createproject.jpg" alt="Gitlab"&gt;&lt;/p&gt;&#10;&lt;p&gt;In this example, my project name is: &lt;code&gt;testPage&lt;/code&gt;&lt;/p&gt;&#10;&lt;p&gt;Now you can see your username on &lt;code&gt;Project URL&lt;/code&gt;, for example, mine is &lt;code&gt;https://gitlab.com/RhysYao/&lt;/code&gt;, and username is &lt;code&gt;RhysYao&lt;/code&gt; which will be used later.&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://yh.timefriend.vip/img/other/gitlab_create_from_template.jpg" alt="Create from template on Gitlab"&gt;&lt;/p&gt;</description></item></channel></rss>