2019年11月26日 星期二

vim 常用指令

簡易用法:
編輯檔案
vim file_name

按i即可進入編輯模式開始編輯。
編輯完畢後按Esc再打:wq即可存檔離開。

vim常用指令說明:

進入normal mode(模式)
按Esc

進入insert mode(編輯模式)
按i

normal mode下之常用指令
跳出程式
:wq 存檔並離開
:q 離開
:q! 離開且不存檔

0 移至行首
$ 移至行尾
^ 移動至當行字首
輸入數字再按Enter,即可跳至下n行(ex: 10再按Enter,即會跳至當行再往下的10行之位置)
輸入:數字再按Enter,即可跳至該檔案之第n行(ex: :10再按Enter即會跳至檔案中第10行之位置)

w 前往下個單詞
b 前往上個單詞

gg 移至第一行
G(大寫) 移至最後一行

yy 複製當行文字
y再按數字再按Enter,即可複製n行(ex: y2再按Enter,即複製當行與下一行)

p 貼上

反白區域並進一步操作
按下v進入visual mode,使用方向鍵選中,按下d則刪除反白區域;按下y則複製選種區域(若要貼上可先按Esc進入normal mode,移動至欲貼上的地方按下p即可貼上)


新增多行重複字串
按下ctrl+v進入visual block mode,使用方向鍵選中多行,再按下shift+i進入insert mode,再輸入欲新增的字串,再按下兩次Esc

進入visual mode
按v

進入visual block mode
按ctrl + v







2019年11月16日 星期六

Python pandas 套件使用

初始化dataframe資料:
方法一:
data = [[1,2]]
data2 = pd.DataFrame(data)
print(data2)

方法二:
data = [[1,2]]
data2 = pd.DataFrame(data,columns = ["col","col2"])
print(data2)

方法三:
data = pd.DataFrame(columns=["col","col2"])
print(data)

dataframe加入新的一行資料:
data = pd.DataFrame(columns=["col","col2"])
dct_data = {}
dct_data["col"] = 1
dct_data["col2"] = 2
data = data.append(dct_data,ignore_index=True)

dataframe存成檔案
data.to_pickle(file_path)

從檔案讀出原先存入的dataframe
data = pd.read_pickle(file_path)

2019年11月15日 星期五

Ubuntu 16.04 安裝 google-chrome

1. 開啟terminal並登入root用戶
確認是否有安裝wget,若無請透過以下指令安裝:
apt-get update && apt-get install -y wget

2.google官網下載google-chrome最新版本安裝包,並開始安裝。
以下為下載與安裝指令:
wget -c https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb && dpkg -i google-chrome-stable_current_amd64.deb ; apt-get install -f -y && dpkg -i google-chrome-stable_current_amd64.deb

3.使用方式,輸入以下指令即可開啟chrome瀏覽器:
google-chrome

2019年7月18日 星期四

selection sort實踐

void select(int arr[10])
{
    int i,j,min,idx,tp;
    for(i=0;i<10-1;i++)
    {
        min=INT_MAX;
        idx = -1;
        for(j=i;j<10;j++)
        {
            if(min>=arr[j])
            {
                min = arr[j];
                idx =j;
            }
        }
        tp = arr[i];
        arr[i] = arr[idx];
        arr[idx] = tp;
    }
}

int main()
{
    int arr[10]={5,3,2,2,0,1,3,4,6,8};
    int i;
    select(arr);
    for(i=0;i<10;i++)
        printf("%d ",arr[i]);
    printf("\n");
    return 0;
}

2019年7月13日 星期六

C 常數指標筆記

pointer to variable can not be modified, but pointer can be modified.

int a=1;
int b=3;
int const *p=&a;
const int *p2=&a;
*p=2; // failed
*p2=2; // failed
p=&b; // success
p2=&b; //success

pointer to variable can be modified, but pointer can not be modified.

int a=1;
int b=3;
int *const p=&a;
*p=2; // success
p=&b; // failed

pointer to variable can not be modified, and pointer can not be modified.

int a=1;
int b=3;
const int *const p=&a;
*p=2; // failed
p=&b; // failed

2019年6月23日 星期日

windows git push時credential出錯解法

windows 上需要push檔案到github上時,需要輸入帳密,若輸入完後,提示fatal: HttpRequestException encountered. ,可開啟左下角windows圖示,使用windows搜尋列搜尋Credential Manager,點入後清除git相關credential,之後再重新登入即可成功push。

2019年3月29日 星期五

scikit-learn train_test_split

使用方式:

import numpy as np
from sklearn.model_selection import train_test_split

x = [1, 2, 3, 4]
y = [5, 6, 7, 8]
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25, random_state=0)
print(x_train,x_test)

輸出為:
[4, 2, 1] [3]

由此範例,可得知train_test_split會先對x和y做打亂的動作,再依據test_size參數,切train和test set。