羅德興老師的教學歷程檔案 - 111-1 大數據分析方法 - 程式範例下載
 

企業資訊與管理系
助理教授/日導
羅德興


歷程檔案 Portfolio

    程式範例下載


    1. "雙層 Loop 應用2"
    # loop2.py
     
     
    2. # This is double loop by L.D.S on 2016/03/08
    print ("雙層 Loop  應用  九九乘法表")
     

    3.  猜數字遊戲
    guess2.py


    4. GUI 練習
    # Getting input using Button
     button2.py

     5. Getting input using a choice box by L.D.S on 2016/03/16
    選擇盒choice box 應用
    choicebox2.py
     
     
    6.
    如何顯示中文

    # 1. 下載一個中文字型到 Colab
    #我們這裡以翰字鑄造的台北黑體為例, 這裡選了 regular 的版本。
    import matplotlib as mpl
    import matplotlib.font_manager as fm
    !wget -O TaipeiSansTCBeta-Regular.ttf https://drive.google.com/uc?id=1eGAsTN1HBpJAkeVM57_C7ccp7hbgSz3_&export=download

    fm.fontManager.addfont('TaipeiSansTCBeta-Regular.ttf')
    mpl.rc('font', family='Taipei Sans TC Beta')


    7.
    PART B:


    chp6.資料儲存與讀取1(txt,CSV、Excel、Google試算表)

    範例6-3:讀取excel檔案score.xlsx,存檔score2.xlsx

    #範例 6-3:讀取excel檔案score.xlsx,存檔score2.xlsx
    #範例 11-3:讀取excel檔案score.xlsx,存檔score2.xlsx
    '''
    About Dataframe
    在Series內有個陣列,裡面放著三個城市,這樣的結構,就是完整的Series,夠簡單吧!

    我們可以把不同的Series放在同一個DataFrame內,像是我們把資料放在dic中,把城市和人口的資料放入,組成一個新的table(Series)。
    '''

    import pandas as pd
    pd.__version__
    # df = pd.read_excel('score.xlsx','score')
    df1 = pd.read_excel('/content/drive/MyDrive/CSV原始資料檔/score.xlsx','mad3a')

    print(df)
    ## code 1 ############################
    #算出數學math的平均分數:mean:(two method)
    print(df['math'])
    print('avg of math =', df['math'].mean())
    print('avg of math =', df.mean()['math'])

    print(df.mean()['math'])

    #排序 sorting print(df.sort_values(by='eng'))
    print(df.sort_values(by='eng', ascending=False))
    print(df.head(3))
    print(df.sort_values(by='eng', ascending=False).head(3))

    #取得某一筆get one record
    print('取得某一筆get one record \n')
    print(df.iloc[3])

    print('計算該筆 record 的平均 calculate MEAN \n')
    print(str(df.iloc[3,3:6].mean()))
    '''
    結果各個欄位的mean,而string這個欄位沒有輸出結果,因為字元無法計算 平均值!
    匯總函式會自動過濾無法算出的值
    axis=1 轉軸 求 row 的平均
    '''

    8.
    好玩的程式展示 (歡迎同學們依專業、興趣 提供)
    https://drive.google.com/drive/folders/1hqiPkOGM5H1ysq8p_d0MUaOXJ9pr3bcr?usp=sharing

    8-1
    先問自己:用途 再去發掘:Library
    從 Yahoo! Finance下載股票價格資料
    pandas_datareader
    yfinance

    把數據匯出成圖表  plotly
    REF:
    https://pythonviz.com/colab-jupyter/google-colab-notebook-import-library-jupyter-visualize-stock-data/

    test003_stock_table.ipynb

    8-2
    圖像識別
    colab02b Cooper 真的是馬爾濟斯嗎.ipynb







    99.
    chp3.數據資料視覺化2(Pandas模組)
    Ex. 3-9 
    範例3-9:印出四位學生的三科成績
    [download] (可顯示中文圖表標題)

    # -*- coding: utf-8 -*-
    """
    註解:此為 Recursive 遞迴呼叫 by L.D.S on 2022/04/03
    檔名:recursive3.py
    功能:此程式為遞迴呼叫 & 非遞迴呼叫 (Iterative 迭代)

    遞迴讓你直覺地表示特定模式

    經典題型:最大公因數 (GCD)、費波納契數列 (Fibonacci Sequence)、河內塔 (Hanoi Tower)、N 個字元的排列組合。

    # \t Tab 印出,\n 跳行 印出, end= "" 接續印出
    """
    import time
     
    def fact(n):
        if (n==1):
            result= 1
        else:
            result = n*fact(n-1)
            print(" * " + str(n))
        return result
     
    def sum_fact(n):
        total = i = 1
        while(i<=n):
            total *= i
            print(" * " + str(i))
            i+=1   
        return total
     
    n=int(input("請輸入一個數字:"))
    start = time.time()
    sum2 = fact(n)
    print(str(n) + " ! 階層 = " + str(sum2))
    end = time.time()
    print("遞迴呼叫")
    print(end - start)
     
    start = time.time()
    total2= sum_fact(n)
    print("%d! 階層 =%d" % (n, total2))
    end = time.time()
    print("非 遞迴呼叫")
    print(end - start)






    # -*- coding: utf-8 -*-
    """
    註解:此為 Recursive 遞迴呼叫 by L.D.S on 2022/04/03
    檔名:recursive4.py
    功能:此程式為遞迴呼叫 & 非遞迴呼叫 (Iterative 迭代)
    遞迴讓你直覺地表示特定模式
    經典題型:最大公因數 (GCD)、費波納契數列 (Fibonacci Sequence)、河內塔 (Hanoi Tower)、N 個字元的排列組合。
    """
    counter=0 def hanoi(n, A, B, C): global counter if n == 1: return [(A, C)] else: return hanoi(n-1, A, C, B) + hanoi(1, A, B, C) + hanoi(n-1, B, A, C) n = input("請輸入整數:") for move in hanoi(int(n), 'A', 'B', 'C'): counter +=1 print("盤由 %c 移至 %c" % move) print("共移動了 " + str(counter) + " 次 盤子")


    # -*- coding: utf-8 -*-
    """
    註解:此為 Recursive 非遞迴呼叫 by L.D.S on 2022/04/03
    檔名:recursive5.py
    功能:此程式為遞迴呼叫 & 非遞迴呼叫 (Iterative 迭代)
    遞迴讓你直覺地表示特定模式
    經典題型:最大公因數 (GCD)、費波納契數列 (Fibonacci Sequence)、河內塔 (Hanoi Tower)、N 個字元的排列組合。

    非遞迴呼叫 (Iterative 迭代)方式
    如果函式中只遞迴呼叫自身一次,使用堆疊來模擬遞迴過程的話,基本上需要一個堆疊,
    單色河內塔遞迴解會在函式中,呼叫自身兩次,這需要兩個堆疊,
    把自己當成電腦來思考的話,就得小心堆疊中狀態的儲存與取出順序,才能正確地解決問題,無疑地,這是個繁瑣的過程,
    """
    counter=0
    def hanoi(nabc):
        global counter
        param_stack_recursion2 = [[n, a, b, c]]

        while param_stack_recursion2:
            m, pa, pb, pc = param_stack_recursion2.pop()
            
            param_stack_recursion1 = []
            while True:
                if m == 1:
                    print("盤由 " + pa +" 搬到 "+ pc) # hanoi(1, A, B, C)
                    counter+=1
                    # hanoi(m - 1, A, C, B) is completed
                    leng = len(param_stack_recursion2)
                    while param_stack_recursion1:
                        m = m + 1
                        sa, sb, sc = param_stack_recursion1.pop() 
                        
                        # hanoi(m - 1, B, A, C)
                        param_stack_recursion2.insert(leng, [m - 1, sb, sa, sc])
                          
                    if param_stack_recursion2:
                        _, mb, ma, mc = param_stack_recursion2[-1
                        print("盤由 " + ma + " 搬到 " + mc) # move A to C
                        counter+=1
                    break
                
                param_stack_recursion1.append([pa, pb, pc])
                # hanoi(m - 1, A, C, B)
                m = m - 1
                pa, pb, pc = pa, pc, pb

    k = input("請輸入整數:")
    hanoi(int(k), 'A''B''C')
    print("共移動了 " + str(counter) + " 次 盤子")     
     



    Ex13-資料視覺化使用 YouBike 資料.ipynb
    https://colab.research.google.com/drive/1pSxSgfL3b0-DTeM0BieypKDQB-u5ZOPp?usp=share_link

    Ex 14  抓取 FoodPanda 資料 [LINK]
    https://colab.research.google.com/drive/1DlJh_DRG4Cz2lqJ6daMilHMGXrp0whvh?usp=share_link




    全部共 1則留言
    10-23 15:47:顯示中文的做法 # 從 Google API 上下載字體放到暫存資料夾底下 !wget 'https://noto-website-2.storage.googleapis.com/pkgs/NotoSansCJKtc-hinted.zip' !mkdir /tmp/fonts !unzip -o NotoSansCJKtc-hinted.zip -d /tmp/fonts/ !mv /tmp/fonts/NotoSansMonoCJKtc-Regular.otf /usr/share/fonts/truetype/NotoSansMonoCJKtc-Regular.otf -f !rm -rf /tmp/fonts !rm NotoSansCJKtc-hinted.zip # 指定字體 import matplotlib.font_manager as font_manager import matplotlib.pyplot as plt font_dirs = ['/usr/share/fonts/truetype/'] font_files = font_manager.findSystemFonts(fontpaths=font_dirs) for font_file in font_files: font_manager.fontManager.addfont(font_file) plt.rcParams['font.family'] = "Noto Sans Mono CJK TC"
    登入帳號密碼代表遵守學術網路規範


    文章分類 Labels


    最新文章 Top10

    中華科技大學數位化學習歷程 - 意見反應