我正在做 CNN 并嘗試將我的資料拆分為訓練和測驗資料集。拆分后,我想用訓練資料的引數sklearn.preprocessing.StandardScaler來縮放我的測驗資料。
所以在縮放之前,我需要拆分資料。我要使用sklearn.model_selection.train_test_split,但要使用該方法,我必須將我的資料轉換為pandas.DataFrame. 由于我的資料是針對 CNN 的,因此它們的長度不符合 DataFrame 的要求
print(x.shape, delta.shape, z.shape, y.shape, non_spatial_data.shape, p.shape, g.shape)
# (15000, 175) (15000, 175) (15000, 175) (15000, 1225) (15000, 264) (15000, 175) (15000, 175)
以上是我的資料被展平后的大小。15000 是樣本大小。你可以看到不同資料的長度不同,這讓我無法將它們轉換成DataFrame。那么我怎樣才能只使用 numpy 進行拆分呢?或者有沒有其他方法可以完成整個拆分和縮放程序?
PS:我用于 CNN 的資料并不是真正的影像。它們是一些具有空間屬性的資料。
uj5u.com熱心網友回復:
這是作業示例:
import pandas as pd
import numpy as np
a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
b = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
c = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
n = 0.2
spl = None
for arr in [a, b, c]:
if spl is None:
rand_ind = np.random.choice(range(len(arr)), len(arr))
spl, remaining = np.split(rand_ind, [int(n * len(rand_ind))])
print([arr[i] for i in spl])
uj5u.com熱心網友回復:
從svfat先生的回答中,我發現我想多了。我的問題也讓 svfat 先生想多了。總之,要拆分資料,我們只需要隨機選擇一個固定比例的索引并將它們應用于每個資料的切片。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/459186.html
上一篇:如何在Pandas資料框中使用value_counts繪制餅圖?
下一篇:如何使用熊貓連接
