Python中的If和range
问题1:什么是Python中的If和range,python,if-statement,vector,Python,If Statement,Vector,问题1:什么是 if test_idx: X_test, y_test= X[test_idx,:], y[test_idx] 及 在 是吗 问题2:为什么范围应该从105到150开始。我知道向量X_测试有45个数据,但为什么不放,例如,范围(0,45)?(我试着放,我知道样本会变化,但我不明白为什么我应该选择这样的间隔) 在函数定义中,test\u idx的默认值为None: def plot_decision_regions(X, y, classifier,test_id
if test_idx:
X_test, y_test= X[test_idx,:], y[test_idx]
及
在
是吗
问题2:为什么范围应该从105到150开始。我知道向量X_测试
有45个数据,但为什么不放,例如,范围(0,45)
?(我试着放,我知道样本会变化,但我不明白为什么我应该选择这样的间隔)
在函数定义中,test\u idx
的默认值为None
:
def plot_decision_regions(X, y, classifier,test_idx=None, resolution = 0.02):
如果它是None
,则不会执行以下操作,但如果确实提供了一个值(非零),则会执行索引操作:
if test_idx:
X_test, y_test= X[test_idx,:], y[test_idx]
这将调用该函数,将test\u idx
定义为范围
对象:
plot_decision_regions(X=X_combined_std, y=y_combined, classifier=ppn, test_idx=range(105,150))
如果X\u combined\u std
或y\u combined
是numpy数组(或类似数组的对象),则test\u idx
范围选择值的“范围”;如图所示:
In [120]: x = np.arange(10)
In [121]: x[range(3, 6)]
Out[121]: array([3, 4, 5])
选择range(105150)
与range(0,45)
只是要绘制哪些数据点/样本/集的问题
开始时,iris
数据集作为X
和y
加载,然后分成训练集和测试集combined
将它们连接起来,此范围从组合数组中选择值
y_combined=np.hstack((y_train, y_test))
看起来iris有150个样本。当测试大小为.3时,150*.3为45。因此,在组合数组中,最后45个元素是test
,其他元素是training
。因此,这个(105150)范围仅绘制测试值。(0,45)将绘制训练值的子集,这可能并没有意义。欢迎使用。这不是一个讨论论坛或教程。请花点时间阅读和阅读该页面上的其他链接。你是在问我们为什么你这么写代码。
plot_decision_regions(X=X_combined_std, y=y_combined, classifier=ppn, test_idx=range(105,150))
In [120]: x = np.arange(10)
In [121]: x[range(3, 6)]
Out[121]: array([3, 4, 5])
y_combined=np.hstack((y_train, y_test))