logo
Loading...

numpy.ndarray' object has no attribute 'index'錯誤 - Cupoy

請問我將'AMT_INCOME_TOTAL'欄位取出後,根據CDF的定義是累積分布函數,因此將此做s...

nl100-2,d06,numpy.ndarray,ecdf

numpy.ndarray' object has no attribute 'index'錯誤

2019/04/26 上午 08:50
機器學習共學討論版
應建民
觀看數:19
回答數:3
收藏數:0
nl100-2
d06
numpy.ndarray
ecdf


請問我將'AMT_INCOME_TOTAL'欄位取出後,根據CDF的定義是累積分布函數,因此將此做sort排序,後來發生'numpy.ndarray' object has no attribute 'index'的報錯


另外plt.plot(list(cdf.index), cdf/cdf.max())此行是做百分比的運算嗎

不好意思要麻煩釋疑

回答列表

  • 2019/04/26 下午 02:48
    白學群
    贊同數:0
    不贊同數:0
    留言數:0

    您好:


    'numpy.ndarray' object has no attribute 'index' 此行報錯的原因是,您取出來的資料型態為ndarray,並非Dataframe or Series,所以沒有 ".index"這個函數


    plt.plot(list(cdf.index), cdf/cdf.max())這行代碼第一個參數為X軸,第二個參數為Y軸,所以並非您所說的百分比,Y軸它是在把每一個欄位除上最大值的動作


    希望有幫到您!

    謝謝

  • 2019/04/29 上午 10:21
    張維元 (WeiYuan)
    贊同數:1
    不贊同數:0
    留言數:1

    這邊提供一個使用參考套件實作的範例:


    ``` 

    import statsmodels.api as sm  

    cdf = sm.distributions.ECDF(app_train['AMT_INCOME_TOTAL'])  

    plt.plot(cdf.x, cdf.y) 

    plt.xlabel('Value') 

    plt.ylabel('ECDF') 

    plt.xlim([cdf.x[1], cdf.x[-1] * 1.05]) # 限制顯示圖片的範圍 

    plt.ylim([-0.05,1.05]) # 限制顯示圖片的範圍 

    plt.show() ```

    ```


    畫出來的圖會長這樣:


  • 2019/05/04 下午 09:02
    張維元 (WeiYuan)
    贊同數:1
    不贊同數:0
    留言數:0

    請問此行程式值行為何ECDF會沒有index功能 ## plt.plot(list(cdf.index), cdf/cdf.max()) AttributeError: 'ECDF' object has no attribute 'index'


    => 這個是作業上提供的寫法嗎?那個寫法你必須要自己算出 cdf ,用其中的 index 跟 max 畫圖。那我們這邊建議可以用 statsmodels 套件,改寫方式可以參考上面的寫法。