logo
Loading...

np.newaxis使用方式 - Cupoy

X = diabetes.data[:, np.newaxis,2]想請問一下,為何要加.data才...

np.newaxis使用方式

2020/04/09 下午 10:36
機器學習共學討論版
江柏勳
觀看數:28
回答數:3
收藏數:0

X = diabetes.data[:, np.newaxis,2]

想請問一下,為何要加.data才跑得出來。然後diabetes.data.shape

顯示它是一個(442,10)的資料,那感覺diabetes.data[:,2]就可以取了,但似乎是沒辦法

那為何還要加np.newaxis才能取。

還是說diabetes.data本身其實是一維,[:, np.newaxis,2]相當就是2維的[:,2]?

回答列表

  • 2020/04/09 下午 10:53
    張維元 (WeiYuan)
    贊同數:0
    不贊同數:0
    留言數:1

    嗨,柏勳


    1. 想請問一下,為何要加.data才跑得出來


    => 你可以試著把「diabetes」印出來看看,這應該是資料原本的設計,具體細節可以參考文件


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

  • 2020/04/09 下午 11:00
    張維元 (WeiYuan)
    贊同數:0
    不贊同數:0
    留言數:4

    嗨,柏勳


    1. 然後diabetes.data.shape 顯示它是一個(442,10)的資料,那感覺diabetes.data[:,2]就可以取了,但似乎是沒辦法那為何還要加np.newaxis才能取。


    => 我們把 data 印出來長這樣:



    如果只取 [:, 2] 的話,會印出第二個維度:


    但這裡想要的是「只包含第二個維度的 Array 所組成的 Array」,如下:




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

  • 2020/04/12 上午 02:12
    張維元 (WeiYuan)
    贊同數:1
    不贊同數:0
    留言數:1

    補充一下 np.newaxis 的用法:


    假如我們現在有一個 1 * 3 的 Array 長這樣:


    ```

    [0 1 2]

    ```

     

    np.newaxi 是增加一個為 1 的維度,例如:


    ```

    np.arange(0,3)[:, np.newaxis]

    # array([[0],

    #        [1],

    #        [2]])

    ```


    這樣寫會把原本的 Array 變成是 n*1


    ```

    np.arange(0, 3)[np.newaxis, :]

    # array([[0, 1, 2]])

    ```


    這樣寫會把原本的 Array 變成是 1*n


    ```

    np.arange(0,3)[:, np.newaxis, np.newaxis]

    # array([[[0]],

    #       [[1]],

    #       [[2]]])

    ```


    這樣寫會把原本的 Array 變成是 n*1*1


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