1.首先生成随机数据
文章目录
import random
# 创建一个153629行,13列的数据,
random_data = np.random.randn(153629, 13)
#创建数据标签,后续将根据数据标签绘制不同的箱型图
label = [0,1,2,3]
labels = np.asarray(random.choices(label,k =153629))
label_reshape = labels[:,np.newaxis]
将数据与标签在第二维度上进行拼接
data = np.hstack((random_data,label_reshape))
#data.shape
#为数据添加列标签,并转换为dataframe格式
data_list = ['red','gre','blu','x','y','mean','Variance','Homogeneity','Contrast','Dissimilarity','Entropy','Second','Correlation','label']
img_feature = pd.DataFrame(data,columns=data_list)
img_feature.head(5)
np.hstack 是 NumPy(Numerical Python 的简称)中的一个函数,用于水平堆叠数组(即沿第二个轴,也就是列方向堆叠)。如果传入的数组不是一维的,那么 np.hstack 会将它们沿着第二个轴(索引为1的轴)堆叠起来。
2. 数据对齐
这一步本来是为方便将数据按照不同的数据类型与标签进行分类(例如:分别提取出四类标签分别对应means数据,并将其合并为一个新的DF-Datafreame数据)
min_length = min([img_feature[img_feature['label']==0].shape[0],img_feature[img_feature['label']==1].shape[0],img_feature[img_feature['label']==2].shape[0],img_feature[img_feature['label']==3].shape[0]])
print(min_length)
根据min_length的数量,利用位置索引从不同标签数据中随机采样min_lengh个样本数据
利用bool索引对
# 从每个类别数据随机选取
label_0_len = img_feature[img_feature['label']==0].shape[0]
# 获取每个标签类型的长度
label_1_len = img_feature[img_feature['label']==1].shape[0]
label_2_len = img_feature[img_feature['label']==2].shape[0]
label_3_len = img_feature[img_feature['label']==3].shape[0]
# 标签0
print("0标签:")
label0_bool_index = create_bool(label_0_len,min_length)
print("标签0数量",len(label0_bool_index))
print