繁体   English   中英

了解Python索引操作

[英]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]otherrank变量不再具有相同的大小,因此会出现错误。 您可以使用类似

  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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM