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

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

轉換具有 numpy 數組的列將其轉換為 dtype 作為對象的 numpy 數組

轉換具有 numpy 數組的列將其轉換為 dtype 作為對象的 numpy 數組

呼啦一陣風 2021-05-30 00:09:24
我在數據框中有一列長度為 10 的 numpy 數組。我的數據框是這樣的:0       [2.0, 1246.0, 82.0, 43.0, 569.0, 46.0, 424.0, ...1       [395.0, 2052.0, 1388.0, 8326.0, 5257.0, 176.0,...10      [4.0, 1.0, 13.0, 1409.0, 7742.0, 259.0, 1856.0...100     [4.0, 87.0, 1595.0, 706.0, 2935.0, 6028.0, 442...1000    [45.0, 582.0, 124.0, 6530.0, 6548.0, 748.0, 61...Name: embedding1, dtype: object當我使用此將其轉換為 numpy 數組數組時:input = np.asarray(df.tolist())它給出了這樣的數組:array([array([   2., 1246.,   82.,   43.,  569.,   46.,  424.,  446., 1054., 39.]),       array([4.0000e+00, 1.0000e+00, 1.3000e+01, 1.4090e+03, 7.7420e+03,       2.5900e+02, 1.8560e+03, 3.6181e+04, 4.2000e+01, 8.9000e+02]),       ...,       array([4.000e+00, 1.000e+00, 1.300e+01, 2.900e+01, 4.930e+02, 2.760e+02,1.100e+01, 6.770e+02, 6.740e+02, 5.806e+03]),], dtype=object)它給出的類型是對象。我希望對象為浮動,因為它給出了形狀(1000,),但我希望形狀為(1000,10)。我試過用這個:input1 = np.asarray(df1.tolist(),dtype=np.float)但它給出了以下錯誤:ValueError: setting an array element with a sequence.如何解決這個問題?PS:dataframe 的 row numpy 數組的所有元素都是 float 類型
查看完整描述

1 回答

?
阿晨1998

TA貢獻2037條經驗 獲得超6個贊

首先,您似乎有一個pd.Series而不是數據框。


進行設置:


x = [[2.0, 1246.0, 82.0, 43.0, 569.0, 46.0, 424.0],

[395.0, 2052.0, 1388.0, 8326.0, 5257.0, 176.0],

[4.0, 1.0, 13.0, 1409.0, 7742.0, 259.0, 1856.0],

[4.0, 87.0, 1595.0, 706.0, 2935.0, 6028.0, 442],

[45.0, 582.0, 124.0, 6530.0, 6548.0, 748.0, 61]]


s = pd.Series(x)

哪個產量


0      [2.0, 1246.0, 82.0, 43.0, 569.0, 46.0, 424.0]

1     [395.0, 2052.0, 1388.0, 8326.0, 5257.0, 176.0]

2    [4.0, 1.0, 13.0, 1409.0, 7742.0, 259.0, 1856.0]

3    [4.0, 87.0, 1595.0, 706.0, 2935.0, 6028.0, 442]

4    [45.0, 582.0, 124.0, 6530.0, 6548.0, 748.0, 61]

dtype: object

你有一個pd.Series數組。看起來你想把它弄平。在列表列表中使用默認構造函數會生成一個數據框,其中每個列表都被解釋為一行:


df2 = pd.DataFrame(s.tolist())


    0       1       2       3       4       5       6

0   2.0     1246.0  82.0    43.0    569.0   46.0    424.0

1   395.0   2052.0  1388.0  8326.0  5257.0  176.0   NaN

2   4.0     1.0     13.0    1409.0  7742.0  259.0   1856.0

3   4.0     87.0    1595.0  706.0   2935.0  6028.0  442.0

4   45.0    582.0   124.0   6530.0  6548.0  748.0   61.0

現在你可以得到底層np.array訪問數據框.values


df2.values


array([[2.000e+00, 1.246e+03, 8.200e+01, 4.300e+01, 5.690e+02, 4.600e+01,

        4.240e+02],

       [3.950e+02, 2.052e+03, 1.388e+03, 8.326e+03, 5.257e+03, 1.760e+02,

              nan],

       [4.000e+00, 1.000e+00, 1.300e+01, 1.409e+03, 7.742e+03, 2.590e+02,

        1.856e+03],

       [4.000e+00, 8.700e+01, 1.595e+03, 7.060e+02, 2.935e+03, 6.028e+03,

        4.420e+02],

       [4.500e+01, 5.820e+02, 1.240e+02, 6.530e+03, 6.548e+03, 7.480e+02,

        6.100e+01]])


查看完整回答
反對 回復 2021-06-09
  • 1 回答
  • 0 關注
  • 134 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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