[英]Understanding Python index operations
我不太了解索引操作,您能解释一下这行代码吗:
train = data[ranks>=test_points]
在这个功能
def random_split(data,test_points):
ranks = np.arange(data.shape[0])
np.random.shuffle(ranks)
train = data[ranks>=test_points]
return train
因此,我需要像这样拆分数据:一半用于培训,四分之一用于验证,四分之一用于测试。 所以我这样做是这样的:
def random_split(data,test_points):
ranks = np.arange(data.shape[0])
np.random.shuffle(ranks)
train = data[ranks>=test_points]
other = data[ranks<test_points]
test = other[ranks>=int(test_points/4)]
valid = other[ranks<int(test_points/4)]
return train,test,valid
它不起作用,怎么了? 您能帮我理解这段代码吗?
问题是在other = data[ranks<test_points]
, other
和rank
变量不再具有相同的大小,因此会出现错误。 您可以使用类似
train_size = 500
validation_size = 100
train_set = data[:train_size]
validation_set = data[train_size: train_size + validation_size]
test_set = data[train_size + validation_size:]
注意: x[ i < 10]
样式索引特定于numpy。 在一般的python中是不允许的。 <
被重载以返回一个布尔数组,例如
i = np.array([1, 3, 5, 4])
i <= 4 # return [True True False True]
在numpy中称为逻辑索引 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.