如何將 Pandas 資料幀 (21 x 31) 轉換為 numpy 陣列?
例如:
array_1 (n_1, n_2, n_3, ... , n31)
array_2 (n_1, n_2, n_3, ... , n31)
...
array_21(n_1, n_2, n_3, ... , n31)
我嘗試了以下代碼片段:
np.array(df)
..并得到以下結果:
array([[0.00290135, 0.00274017, 0.00531915, 0.00967118, 0.00676983,
0.0082205 , 0.01096067, 0.01821406, 0.01450677, 0.02401676,
0.0235332 , 0.03787879, 0.04239201, 0.04190845, 0.04819471,
0.04932302, 0.06399097, 0.07865893, 0.06995487, 0.06914894,
0.08107672, 0.06141199, 0.05157963, 0.05141844, 0.03852353,
0.03546099, 0.02611219, 0.01595745, 0.00435203, 0.00322373,
0.00257898],
[0. , 0.00392927, 0.00638507, 0.01866405, 0.00785855,
0.01915521, 0.00491159, 0.02308448, 0.01178782, 0.01915521,
0.03339882, 0.02996071, 0.03192534, 0.05451866, 0.03732809,
0.04125737, 0.05304519, 0.05599214, 0.0589391 , 0.09528487,
0.13752456, 0.05108055, 0.02603143, 0.05500982, 0.02799607,
0.01424361, 0.05157171, 0.02799607, 0. , 0.00049116,
0.00147348],
[0. , 0. , 0.01376462, 0. , 0.00825877,
0.01238816, 0.00757054, 0.00275292, 0.01307639, 0.01927047,
0.03234687, 0.04129387, 0.02959394, 0.02615279, 0.05161734,
0.03991741, 0.05574673, 0.12801101, 0.04335857, 0.07983482,
0.05918789, 0.12319339, 0.02546456, 0.08878183, 0.01169993,
0.04542326, 0.02064694, 0.01789401, 0. , 0.00275292,
0. ],
[...]])
問題是第二個方括號太多了。我怎么解決這個問題?
uj5u.com熱心網友回復:
似乎您想將 DataFrame 轉換為一維陣列(這在帖子中應該很清楚)。
首先,使用DataFrame.to_numpy(DataFrame.values不鼓勵使用)將 DataFrame 轉換為 2D numpy 陣列,然后使用ndarray.ravel或ndarray.flatten將陣列展平。
arr = df.to_numpy().ravel()
uj5u.com熱心網友回復:
np = df.values
資料框包含 values 屬性。該屬性實際上將資料保存為 NumPy 陣列。
將 n 維 numpy array 轉換為 1D numpy array 。
data = df.values
# method 1
raval = data.ravel()
#method 2
shape = data.shape
1d_data = data.reshape(1,shape[0]*shape[1])
uj5u.com熱心網友回復:
查看這篇 Stackoverflow 帖子,有一個名為 的內置 Pandas 方法df.to_numpy()。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/350771.html
下一篇:在Pandas資料框中查找段
