假設我有以下兩個 numpy.ndarrays
- pixel_array.shape = (1000, 28, 28)
- labels_array.shape = (1000, 0)
Pixels_array 是 28 x 28 像素值的 1000 項陣列,labels_array 只是這些像素值的 1000 項標簽串列。我正在嘗試將這些陣列合并到一個長格式的資料框中,看起來像(由于空間原因不包括陣列示例):
| ID | 標簽 | 像素 |
|---|---|---|
| 1 | 9 | 28x28 陣列 |
| 2 | 乙 | 28x28 陣列 |
| 3 | 問 | 28x28 陣列 |
| 4 | 8 | 28x28 陣列 |
| 5 | Z | 28x28 陣列 |
做這個的最好方式是什么?我已經搞砸了大約一個小時,只是無法按照我期望的方式作業。有時我為每個陣列中的每個專案獲得一行,其他時候我總共獲得 2 行。任何幫助,將不勝感激。
uj5u.com熱心網友回復:
您應該能夠通過以下方式做到這一點。
df = pd.DataFrame({'Pixels': [pixels_array[i] for i in range(1000)],
'Label': labels_array.flatten()})
uj5u.com熱心網友回復:
您所要求的很少推薦,但一種方法是首先將陣列強制為串列,即:
arr1 = np.random.randint(1, 10, size=(1000, 28, 28))
arr2 = np.random.randn(1000)
df = pd.Series(arr2, name="Label").to_frame()
df['pixels'] = arr1.tolist()
然后,如果您愿意,可以將其轉換回陣列:
df.pixels = df.pixels.apply(np.array)
輸出:
Label pixels
0 -0.187183 [[7, 9, 6, 5, 5, 7, 6, 9, 1, 7, 7, 7, 2, 8, 8,...
1 0.360777 [[1, 4, 6, 7, 7, 4, 9, 1, 1, 8, 8, 6, 9, 3, 6,...
2 0.206012 [[7, 4, 8, 3, 4, 3, 8, 9, 1, 9, 6, 8, 7, 5, 3,...
3 0.726619 [[1, 8, 8, 4, 5, 1, 2, 2, 3, 4, 8, 3, 6, 4, 1,...
4 0.801372 [[3, 5, 7, 3, 5, 7, 4, 1, 5, 1, 6, 3, 8, 5, 9,...
(...)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/420087.html
標籤:
