亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問如何將熊貓系列或索引轉換為Numpy數組?

請問如何將熊貓系列或索引轉換為Numpy數組?

素胚勾勒不出你 2019-08-02 07:02:18
如何將熊貓系列或索引轉換為Numpy數組?您知道如何將DataFrame的索引或列作為NumPy數組或python列表嗎?
查看完整描述

3 回答

?
慕后森

TA貢獻1802條經驗 獲得超5個贊

若要獲取NumPy數組,應使用values屬性:

In [1]: df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}, index=['a', 'b', 'c']); df
   A  B
a  1  4b  2  5c  3  6In [2]: df.index.valuesOut[2]: array(['a', 'b', 'c'], dtype=object)

這將訪問數據的存儲方式,因此不需要進行轉換。
注:這個屬性也適用于許多其他熊貓的物體。

In [3]: df['A'].valuesOut[3]: Out[16]: array([1, 2, 3])

若要將索引作為列表獲取,請調用tolist:

In [4]: df.index.tolist()Out[4]: ['a', 'b']

同樣的,列也是。




查看完整回答
反對 回復 2019-08-03
?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

你可以用df.index訪問索引對象,然后使用以下方法獲取列表中的值df.index.tolist()..類似地,您可以使用df['col'].tolist()為了系列賽。

查看完整回答
反對 回復 2019-08-03
?
臨摹微笑

TA貢獻1982條經驗 獲得超2個贊

電流截至.v0.24.0+, 2019.

不建議使用.values贊成這些方法!

從v0.24.0開始,我們將有兩種新的、更好的方法來獲得NumPy數組IndexSeries,和DataFrame對象:它們是to_numpy(),和.array..關于使用,文檔提到:

我們沒有刪除或反對Series.valuesDataFrame.values,但是我們強烈推薦和使用.array.to_numpy()相反。

看見V0.24.0發行說明的這一部分想了解更多信息。


to_numpy()方法

df.index.to_numpy()# array(['a', 'b'], dtype=object)df['A'].to_numpy()#  array([1, 4])

默認情況下,將返回視圖。任何修改將影響原件。

v = df.index.to_numpy()v[0] = -1df
    A  B-1  1  2b   4  5

如果您需要副本,請使用to_numpy(copy=True);

v = df.index.to_numpy(copy=True)v[-1] = -123df
   A  B
a  1  2b  4  5

請注意,此函數也適用于DataFrames(同時.array)。


array屬性
此屬性返回ExtensionArray對象,該對象支持索引/序列。

pd.__version__# '0.24.0rc1'# Setup.df = pd.DataFrame([[1, 2], [4, 5]], columns=['A', 'B'], index=['a', 'b'])df

   A  B
a  1  2b  4  5


df.index.array    
# <PandasArray># ['a', 'b']# Length: 2, dtype: objectdf['A'].array# <PandasArray># [1, 4]# Length: 2, dtype: int64

從這里,可以使用list:

list(df.index.array)# ['a', 'b']list(df['A'].array)# [1, 4]

或者直接打電話.tolist():

df.index.tolist()# ['a', 'b']df['A'].tolist()# [1, 4]

關于歸還的內容,醫生們提到,

SeriesIndex由普通NumPy數組支持的ES,Series.array將返回一個新的arrays.PandasArray,它是一個薄的(無副本)包裝器。numpy.ndarrayarrays.PandasArray它本身并不特別有用,但它確實提供了與在熊貓或第三方庫中定義的任何擴展數組相同的接口。

總之,.array將返回

  1. 現有

    ExtensionArray

    支持索引/系列,或
  2. 如果有一個NumPy數組支持該系列,則將生成一個新的

    ExtensionArray

    對象是作為底層數組上的一個薄包裝器創建的。

添加兩種新方法的理由
這些職能是在兩個GitHub問題下討論的結果而增加的。GH 19954GH 23623.

具體來說,文檔提到了理由:

[.]帶著.values還不清楚返回的值是實際數組,還是它的某些轉換,還是熊貓自定義數組之一(如Categorical)。例如,用PeriodIndex.values生成一個新的ndarray每次的句點對象。[.]

這兩個函數旨在提高API的一致性,這是朝著正確方向邁出的重要一步。

最后,.values在當前版本中不會受到反對,但是我預計這種情況可能會在將來的某個時候發生,所以我會敦促用戶盡快遷移到更新的API中。




查看完整回答
反對 回復 2019-08-03
  • 3 回答
  • 0 關注
  • 481 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號