<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>transformer_mia.log</title>
        <link>https://velog.io/</link>
        <description></description>
        <lastBuildDate>Sat, 07 Dec 2024 12:32:52 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>transformer_mia.log</title>
            <url>https://velog.velcdn.com/images/transformer_mia/profile/95411348-9708-4a69-b80a-a2118890d57d/social_profile.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. transformer_mia.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/transformer_mia" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[커서(Cursor) 자동완성 끄는 법]]></title>
            <link>https://velog.io/@transformer_mia/%EC%BB%A4%EC%84%9CCursor-%EC%9E%90%EB%8F%99%EC%99%84%EC%84%B1-%EB%81%84%EB%8A%94-%EB%B2%95</link>
            <guid>https://velog.io/@transformer_mia/%EC%BB%A4%EC%84%9CCursor-%EC%9E%90%EB%8F%99%EC%99%84%EC%84%B1-%EB%81%84%EB%8A%94-%EB%B2%95</guid>
            <pubDate>Sat, 07 Dec 2024 12:32:52 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>커서(cursor)의 자동완성 기능을 끄는 방법과 단축키 만들어서 껐다 켰다 하는 방법</p>
</blockquote>
<blockquote>
<p>가장 간단한 방법: 우측 하단의 Cursor Tab 클릭해서 설정
<img src="https://velog.velcdn.com/images/transformer_mia/post/4869dbbc-aa34-4b02-a663-d5848b4ef1e2/image.png" alt=""></p>
</blockquote>
<blockquote>
<p>세 줄 요약:</p>
</blockquote>
<ol>
<li>ctrl+shift+p</li>
<li>cursor tab 입력, disable cursor tab 선택</li>
<li>단축키 쓰고 싶으면 ctrl+shift+p -&gt; open keyboard shortcuts -&gt; cursor tab -&gt; 원하는 단축키 설정</li>
</ol>
<br>

<h4 id="1-커서를-연다">1. 커서를 연다.</h4>
<p><img src="https://velog.velcdn.com/images/transformer_mia/post/773236ba-c155-4f8f-8baf-a0b23886b715/image.png" alt=""></p>
<br>

<h4 id="2-ctrlshiftp">2. Ctrl+Shift+P</h4>
<p>를 하면 아래처럼 커서(VSCode) 상의 모든 명령어를 검색 및 확인할 수 있는 창이 나온다.
<img src="https://velog.velcdn.com/images/transformer_mia/post/2f7f3227-400b-4266-8449-7b9c43d73ddc/image.png" alt=""></p>
<br>

<h4 id="3--오른쪽에-cursor-tab-입력">3. &gt; 오른쪽에 cursor tab 입력</h4>
<p>그럼 이렇게 Disable Cursor Tab, Enable Cursor Tab이 나온다. Disable Cursor Tab을 클릭하면 자동완성 기능이 꺼진다.
<img src="https://velog.velcdn.com/images/transformer_mia/post/1328266d-098d-47d6-b028-d819ac8ea522/image.png" alt=""></p>
<br>

<p>더 나아가 단축키를 이용해 자동완성 기능을 껐다 켰다 하고 싶다면 이어서 진행하면 된다.</p>
<h4 id="4-ctrlshiftp----open-keyboard-shortcuts-입력">4. Ctrl+Shift+P --&gt; open keyboard shortcuts 입력</h4>
<p><img src="https://velog.velcdn.com/images/transformer_mia/post/190ad3c4-2042-4963-89e1-7b63ec9dc7b1/image.png" alt=""></p>
<br>

<h4 id="5-preferences-open-keyboard-shortcuts-클릭">5. Preferences: Open Keyboard Shortcuts 클릭</h4>
<p>두 번째 항목을 클릭하면
<img src="https://velog.velcdn.com/images/transformer_mia/post/7f81fc66-604a-44e8-bece-f2feda9138cb/image.png" alt="">
아래처럼 키보드 단축키 설정 창 등장
<img src="https://velog.velcdn.com/images/transformer_mia/post/d9ea5c9b-95b4-44d4-af8b-0c1618ac9022/image.png" alt=""></p>
<br>

<h4 id="6-상단-검색창에-cursor-tab-입력">6. 상단 검색창에 cursor tab 입력</h4>
<p>나는 이미 설정해서 Keybinding(두 번째 열)에 단축키가 설정되어 있지만, 이전에 설정한 적이 없다면 빈칸으로 나온다.
<img src="https://velog.velcdn.com/images/transformer_mia/post/b5f7dee8-68a7-49db-be4c-827ea093eb25/image.png" alt="">
<br></p>
<h4 id="7-단축키-설정">7. 단축키 설정!</h4>
<p>Disable Cursor Tab 왼쪽에 마우스를 호버하면 단축키를 수정할 수 있는 버튼이 나타난다.
<img src="https://velog.velcdn.com/images/transformer_mia/post/eaa0e724-bf43-4336-a424-369b5136f906/image.png" alt="">
클릭하면 중앙에 &#39;원하는 단축키를 누르고 엔터 입력해<del>&#39;라는 안내와 함께 입력창이 뜬다.
<img src="https://velog.velcdn.com/images/transformer_mia/post/5f14942e-a5a9-469e-b784-2f116780de0c/image.png" alt="">
쓰고 싶은 단축키를 차례로 누르고 엔터하면 된다. &#39;커서 탭&#39;은 Ctrl+Tab, Disable은 Ctrl+Tab+D로 결정!
이때 Ctrl과 Tab을 누른 상태에서 D를 같이 눌렀는데도 ctrl+tab ctrl+d 라고 표시되어서 ctrl을 두 번 눌러야 하나..?라는 생각이 들 수 있다. 하지만 ctrl+tab+d를 뜻하는 것이니 신경 쓰지 않아도 된다.
<img src="https://velog.velcdn.com/images/transformer_mia/post/2940f8c1-54a5-463e-8ea8-295d5d1e2881/image.png" alt="">
1 existing command</del> 라는 문구는 1가지 기능에 대한 단축키가 이미 존재한다는 안내문구다. 이 안내 문구가 안 나오는 단축키를 찾으면 된다.
<img src="https://velog.velcdn.com/images/transformer_mia/post/caa737e4-d65b-45a9-b340-6ff6cf72f46a/image.png" alt=""></p>
<br>

<h4 id="8-설정-끝">8. 설정 끝!</h4>
<p>Keybinding을 보니 설정이 잘 되었당
<img src="https://velog.velcdn.com/images/transformer_mia/post/1a0e4c2e-d17a-4c5a-8001-388fb3d1f409/image.png" alt=""></p>
<br>]]></description>
        </item>
        <item>
            <title><![CDATA[numpy-100 실습]]></title>
            <link>https://velog.io/@transformer_mia/numpy-100-%EC%8B%A4%EC%8A%B5-thl975hx</link>
            <guid>https://velog.io/@transformer_mia/numpy-100-%EC%8B%A4%EC%8A%B5-thl975hx</guid>
            <pubDate>Tue, 25 Jun 2024 22:51:16 GMT</pubDate>
            <description><![CDATA[<p>출처: <a href="https://github.com/rougier/numpy-100">https://github.com/rougier/numpy-100</a></p>
<ol>
<li><p>np라는 이름으로 numpy 패키지 임포트 (★☆☆)</p>
<pre><code>import numpy as np</code></pre><br>
</li>
<li><p>numpy 버전(version), 설정(configuration) 출력 (★☆☆)</p>
<pre><code>print(np.__version__)
print(np.show_config())</code></pre><br>
</li>
<li><p>크기가 10인 null 벡터 출력 (★☆☆)</p>
<pre><code>Z = np.zeros(10)
print(Z)</code></pre><br>
</li>
<li><p>Z에 np.zeros((10, 10))가 할당되어 있을 때, numpy를 이용해 해당 배열의 메모리 크기를 구하는 방법 (★☆☆)</p>
<pre><code>Z = np.zeros((10, 10))
print(&quot;%d bytes&quot; % (Z.size * Z.itemsize))</code></pre><br>
</li>
<li><p>명령 프롬프트에서 numpy의 add 기능에 대한 문서를 출력하는 방법 (★☆☆)</p>
<pre><code>%run `python -c &quot;import numpy; numpy.info(numpy.add)&quot;</code></pre><br>
</li>
<li><p>5번째 값은 1인 크기 10의 null 벡터 출력하는 방법 (★☆☆)</p>
<pre><code>Z = np.zeros(10)
Z[4] = 1
print(Z)</code></pre><br>
</li>
<li><p>10부터 49까지의 값을 갖는 벡터 만드는 방법 (★☆☆)</p>
<pre><code>Z = np.arange(10, 50)
print(Z)</code></pre><br>
</li>
<li><p>0부터 49까지의 값을 갖는 벡터를 만들고 값이 큰 순서대로 나열되게끔 하는 방법 (★☆☆)</p>
<pre><code>Z = np.arange(50)
Z = Z[::-1]
print(Z)</code></pre><br>
</li>
<li><p>0부터 8까지의 값을 갖는 3X3 행렬 만드는 방법 (★☆☆)</p>
<pre><code>Z = np.arange(9).reshape(3, 3)
print(Z)</code></pre><br>
</li>
<li><p>0이 아닌 정수의 인덱스 반환하는 방법 (★☆☆)</p>
<pre><code>np = np.nonzero([0, 2, 4, 2, 0, 2])
print(np)</code></pre><br>
</li>
<li><p>3×3 배열 만드는 방법 (★☆☆)</p>
<pre><code>Z = np.eye(3)
print(Z)</code></pre><br>
</li>
<li><p>랜덤값을 갖는 3×3×3 배열 만드는 방법 (★☆☆)</p>
<pre><code>Z = np.random.random((3, 3, 3))
print(Z)</code></pre><br>
</li>
<li><p>랜덤값을 갖는 10×10 배열을 만들고 최대값과 최소값 찾는 방법 (★☆☆)</p>
<pre><code>Z = np.random.random((10, 10))
Zmin, Zmax = Z.min(), Z.max()
prinr(Zmin, Zmax)</code></pre><br>
</li>
<li><p>랜덤값을 갖는 크기 30의 벡터를 만들고 평균값을 구하는 방붑 (★☆☆)</p>
<pre><code>Z = np.random.random(30)
m = Z.mean()
print(m)</code></pre><br>
</li>
<li><p>10×10인 2차원 행렬을 만들고 가장자리는 1, 나머지는 0이 되게 하는 방법 (★☆☆)
<img src="https://velog.velcdn.com/images/transformer_mia/post/502a5b6b-556f-4f61-a039-deca636e3dc6/image.png" alt=""></p>
<pre><code>Z = np.ones((10, 10))
Z[1:-1, 1:-1] = 0
print(Z)</code></pre><br>
</li>
<li><p>1이라는 값으로만 채워진 5×5 배열에서 가장자리를 0으로 바꾸는 방법 (★☆☆)</p>
<pre><code>Z = np.ones((5, 5))
Z = np.pad(Z, pad_width=1, mode=&#39;constant&#39;, constant_values=0)
print(Z)</code></pre><pre><code># fancy하게 인덱스 사용하기
Z[:, [0:-1]] = 0
Z[[0:-1], :] = 0
prinr(Z)</code></pre><br>
</li>
<li><p>다음 코드의 결과 예상해보기 (★☆☆)</p>
<pre><code>print(0 * np.nan)
print(np.nan == np.nana)
print(np.inf &gt; np.nan)
print(np.nan - np.nan)
print(np.nan in set([np.nan]))
print(0.3 == 3 * 0.1)</code></pre><br>
</li>
<li><p>값 1, 2, 3, 4가 대각선을 이루는 5×5 배열 만드는 방법 (★☆☆)</p>
<pre><code>Z = np.diag(1+np.arrange(4), k=-1)
print(Z)</code></pre><br>
</li>
<li><p>0과 1로 격자무늬를 이루는 8x8 행렬을 만드는 방법 (★☆☆)
<img src="https://velog.velcdn.com/images/transformer_mia/post/6f49597b-fb8a-4fb2-a98f-f1cd5286f138/image.png" alt=""></p>
<pre><code>Z = np.zeros((8,8),dtype=int)
Z[1::2,::2] = 1
Z[::2,1::2] = 1
print(Z)</code></pre><br>
</li>
<li><p>(6,7,8) 배열이 있다고 가정할 때, 100번째 요소의 인덱스 (x, y, z)는 무엇인가? (★☆☆)</p>
<pre><code># 배열의 크기
shape = (6, 7, 8)
</code></pre></li>
</ol>
<h1 id="100번째-원소는-0-based-index로-99번째-원소">100번째 원소는 0-based index로 99번째 원소</h1>
<p>element_index = 99</p>
<h1 id="numpy의-unravel_index-함수를-사용해-1차원-인덱스를-3차원-인덱스로-변환">NumPy의 unravel_index 함수를 사용해 1차원 인덱스를 3차원 인덱스로 변환</h1>
<p>index_3d = np.unravel_index(element_index, shape)</p>
<p>print(index_3d)</p>
<h1 id="또는-printnpunravel_index99678로-한-줄-구현-가능">또는 print(np.unravel_index(99,(6,7,8))로 한 줄 구현 가능</h1>
<pre><code>&lt;br&gt;

21. tile 기능을 사용해 0과 1로 격자무늬를 이루는 8x8 행렬을 만드는 방법 (★☆☆)
![](https://velog.velcdn.com/images/transformer_mia/post/82872ac0-37dd-4b3d-9655-5e657ac49ac0/image.png)</code></pre><p>Z = np.tile(np.array([[0,1],[1,0]]), (4,4))
print(Z)</p>
<pre><code>&lt;br&gt;

22. 랜덤 값을 갖는 5×5 행렬을 정규화하는 방법</code></pre><p>Z = np.random.random((5,5))
Z = (Z - np.mean(Z) / (np.std(Z))
print(Z)</p>
<pre><code>&lt;br&gt;

23. 4개의 미지정 바이트로 색상을 나타내는 custom dtype 만드는 방법</code></pre><p>color = np.dtype([(&quot;r&quot;, np.ubyte), (&quot;g&quot;, np.ubyte), (&quot;b&quot;, np.ubyte), (&quot;a&quot;, np.ubyte)]</p>
<pre><code>&lt;br&gt;

24. 5x3 행렬과 3×2 행렬의 곱 (real matrix product)</code></pre><p>Z = np.dot(np.ones((5,3)), np.ones((3,2)))
print(Z)</p>
<pre><code></code></pre><h1 id="파이썬-35-이상에서-가능한-다른-해결책">파이썬 3.5 이상에서 가능한 다른 해결책</h1>
<p>Z = np.ones((5,3)) @ np.ones((3,2))
print(Z)</p>
<pre><code>&lt;br&gt;

25. 함수를 이용해 0부터 10까지의 값을 갖는 1차원 배열을 만들고 3과 8 사이의 값들은 음의 정수로 만들기 (이때 값들이 자리한 순서는 이전과 그대로)</code></pre><p>Z = np.arrange(11)
Z[(3&lt;Z)&amp;(8&lt;Z)] *= -1
print(Z)</p>
<pre><code>&lt;br&gt;

26. 다음 코드의 결과를 예측해보자.</code></pre><p>print(sum(range(5), -1)
import numpy as *
print(sum(range(5), -1)</p>
<pre><code>&lt;br&gt;

27. 정수형 벡터 Z가 있다. 아래 표현 중 어느 것이 옳은지 판단해보자.</code></pre><p>Z*<em>Z
2 &lt;&lt; Z &gt;&gt; 2
Z &lt;- Z
ij</em>Z
Z/1/1
Z<Z>Z</p>
<pre><code>&lt;br&gt;

28. 다음 코드의 결과를 예측해보자.</code></pre><p>print(np.array(0) / np.array(0))
print(np.array(0) // np.array(0))
print(np.array([np.nan]).astype(int).astype(float))</p>
<pre><code>&lt;br&gt;

29.

&lt;br&gt;

30. 2개의 배열에서 일반적인 값을 구하는 방법</code></pre><p>Z1 = random.randit(0, 10, 10)
Z2 = random.randint(0, 10, 10)
print(np.intersectid(Z1, Z2))</p>
<p>```
<br></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[코랩 스트림릿 연동 방법]]></title>
            <link>https://velog.io/@transformer_mia/%EC%BD%94%EB%9E%A9-%EC%8A%A4%ED%8A%B8%EB%A6%BC%EB%A6%BF-%EC%97%B0%EB%8F%99-%EB%B0%A9%EB%B2%95</link>
            <guid>https://velog.io/@transformer_mia/%EC%BD%94%EB%9E%A9-%EC%8A%A4%ED%8A%B8%EB%A6%BC%EB%A6%BF-%EC%97%B0%EB%8F%99-%EB%B0%A9%EB%B2%95</guid>
            <pubDate>Tue, 08 Aug 2023 10:04:07 GMT</pubDate>
            <description><![CDATA[<p>출처: <a href="https://discuss.streamlit.io/t/how-to-launch-streamlit-app-from-google-colab-notebook/42399/6">https://discuss.streamlit.io/t/how-to-launch-streamlit-app-from-google-colab-notebook/42399/6</a></p>
<p><strong>1. 코랩 노트북을 새로 만든다.</strong></p>
<p><strong>2. 아래 코드를 순서대로 복붙+실행한다.</strong></p>
<pre><code># 1_스트림릿 설치
!pip install -q streamlit</code></pre><pre><code># 2_스트림릿 화면에 띄울 내용

%%writefile app.py

import streamlit as st

st.write(&#39;Hello, *World!* :sunglasses:&#39;) # 해당 내용을 수정해서 사이트를 자유롭게 꾸밀 수 있다.</code></pre><pre><code># 3
import urllib
print(&quot;Password/Enpoint IP for localtunnel is:&quot;,urllib.request.urlopen(&#39;https://ipv4.icanhazip.com&#39;).read().decode(&#39;utf8&#39;).strip(&quot;\n&quot;))

# &quot;Password/Enpoint IP for localtunnel is:&quot; 우측에 xx.xxx.xx.xxx 혹은 xx.xxx.xxx.xxx 형식의 숫자가 나온다.</code></pre><pre><code># 4
!npm install localtunnel</code></pre><pre><code># 5
!streamlit run app.py &amp;&gt;/content/logs.txt &amp;</code></pre><pre><code># 6
!npx localtunnel --port 8501

# &quot;your url is:&quot; 우측에 사이트 주소가 생성된다.</code></pre><p><strong>3. #6 코드의 결과로 나온 사이트에 접속한다.</strong></p>
<p><strong>4. #3 코드의 결과로 나온 숫자들을 복사해서 사진의 화살표로 표시된 칸에 붙여넣은 후 &#39;Click to Submit&#39; 버튼을 클릭한다.</strong>
<img src="https://velog.velcdn.com/images/transformer_mia/post/d9599a99-362c-40a9-8d54-f84311eb7969/image.PNG" alt=""></p>
<p><strong>5. 스트림릿 화면으로 연결된다.</strong></p>
]]></description>
        </item>
    </channel>
</rss>