logo
Loading...

在metrics.ipynb 範例程式中 (0,100) 在 python中不是不包含100這個數字嗎,那為什麽(0, 100, 101)是能切出101個刻度(含頭尾)? - Cupoy

在metrics.ipynb 範例程式中 (0,100) 在 python中不是不包含100這個數字嗎,那為什麽(0, 100, 101)是能切出101個刻度(含頭尾)?

2020/03/08 下午 03:29
機器學習共學討論版
AC
觀看數:16
回答數:4
收藏數:1

回答列表

  • 2020/03/08 下午 04:22
    崴崴
    贊同數:1
    不贊同數:0
    留言數:0

    numpy的document有寫:

    https://docs.scipy.org/doc/numpy/reference/generated/numpy.linspace.html

    預設的endpoint=True

  • 2020/03/08 下午 08:46
    李子明
    贊同數:1
    不贊同數:0
    留言數:0

    整理一下:

    一、第三個參數,這個參數的名字叫num,用來告知linspace最後要傳回多少個元素。

    二、而名字叫endpoint這個參數,是用來說,我們要不要加碼,即num+1,並且在回傳的時候把加碼的部分刪掉,畢竟我們只要num個元素而已。


    舉例:

    linspace(0,5,6,endpoint=True),第三個參數6是指我們最後要得到6個元素,因為有True,所以是0到5包括5之間平均取6個,因此得到的是[0,1,2,3,4,5]共六個元素。


    linspace(0,5,5,endpoint=False),第三個參數5代表最後要得到5個元素,因為有False,所以是0到5包括5之間平均取5+1個,然後捨棄掉最後一個,這樣得到的就是[0,1,2,3,4]就總共得到5個元素。


    可以實際動手試試linspace(0,5,6,endpoint=False)會是怎麼一回事。


    我在Day1沒看到linspace(0,100),不過如果有的話,linspace(0,100)其實是使用了參數的預設值,還原預設值後,會是linspace(0,100,num=50,endpoint=True)這樣子的,所以會有包括100,合計共50個元素的。

  • 2020/03/09 上午 00:11
    張維元 (WeiYuan)
    贊同數:0
    不贊同數:0
    留言數:2

    嗨,


    你的描述中「檔案 Day_001_example_of_metrics.ipynb 中 (0,100) 在 python中不是不包含100這個數字嗎」,請問是哪裡提到的?上面的敘述不是說「含頭尾」嗎?


    根據文件的說明 numpy.linspace(0, 100) 是含頭尾的,arrange 才是不包含尾。


    如果這個回答對你有幫助請主動點選「有幫助」的按鈕,也可以追蹤我的 GITHUB 帳號。若還有問題的話,也歡迎繼續再追問或者把你理解的部分整理上來,我都會提供你 Review 和 Feedback 😃😃😃

  • 2020/03/11 上午 00:17
    張維元 (WeiYuan)
    贊同數:1
    不贊同數:0
    留言數:0

    嗨!


    感謝補充位置,這樣比較明確知道要看哪裡:)


    關於這個問題「2. 我有看到In [2]: 裡面的註解寫 「含頭尾」,所以我不瞭解的事情是有些程式碼寫 (1,3) 沒有包含3,但 linspace 有包含最後一個數字,那我要怎麼判斷程式碼用 ( ) 時哪些有包含最後一個數字哪些沒有?只能慢慢查 document嗎」 => 對,要看定義的人怎麼設計的,看文件最快!


    如果這個回答對你有幫助請主動點選「有幫助」的按鈕,也可以追蹤我的GITHUB帳號。若還有問題的話,也歡迎繼續再追問或者把你理解的部分整理上來,我都會提供你 Review 和 Feedback 😃😃😃