以相同顺序随机打乱来自不同文件的数据和标签
Randomly shuffle data and labels from different files in the same order
我有两个 numpy 数组,第一个包含数据,第二个包含标签。
我想根据标签对数据进行洗牌。换句话说,我怎样才能以相同的顺序打乱我的标签和数据。
import numpy as np
data=np.genfromtxt("dataset.csv", delimiter=',')
classes=np.genfromtxt("labels.csv",dtype=np.str , delimiter='\t')
x=np.random.shuffle(data)
y=x[classes]
这样可以保留洗牌的顺序吗?
使用 np.random.permutation
生成随机顺序的元素,并使用 -
简单地索引到数组 data
和 classes
idx = np.random.permutation(len(data))
x,y = data[idx], classes[idx]
或者,您可以将数据和标签连接在一起,打乱它们,然后将它们分成 输入 x 和 标签 y,如下所示:
def read_data(filename, delimiter, datatype): # Read data from a file
return = np.genfromtxt(filename, delimiter, dtype= datatype)
classes = read_data('labels.csv', dtype= np.str , delimiter='\t')
data = read_data('data.csv', delimiter=',')
dataset = np.r_['1', data, classes] # Concatenate along second axis
def dataset_shuffle(dataset): # Returns separated shuffled data and classes from dataset
np.random.shuffle(dataset)
n, m = dataset.shape
x = data[:, 0:m-1]
y = data[:, m-1]
return x, y # Return shuffled x and y with preserved order
我有两个 numpy 数组,第一个包含数据,第二个包含标签。 我想根据标签对数据进行洗牌。换句话说,我怎样才能以相同的顺序打乱我的标签和数据。
import numpy as np
data=np.genfromtxt("dataset.csv", delimiter=',')
classes=np.genfromtxt("labels.csv",dtype=np.str , delimiter='\t')
x=np.random.shuffle(data)
y=x[classes]
这样可以保留洗牌的顺序吗?
使用 np.random.permutation
生成随机顺序的元素,并使用 -
data
和 classes
idx = np.random.permutation(len(data))
x,y = data[idx], classes[idx]
或者,您可以将数据和标签连接在一起,打乱它们,然后将它们分成 输入 x 和 标签 y,如下所示:
def read_data(filename, delimiter, datatype): # Read data from a file
return = np.genfromtxt(filename, delimiter, dtype= datatype)
classes = read_data('labels.csv', dtype= np.str , delimiter='\t')
data = read_data('data.csv', delimiter=',')
dataset = np.r_['1', data, classes] # Concatenate along second axis
def dataset_shuffle(dataset): # Returns separated shuffled data and classes from dataset
np.random.shuffle(dataset)
n, m = dataset.shape
x = data[:, 0:m-1]
y = data[:, m-1]
return x, y # Return shuffled x and y with preserved order