Разница между значениями ilo c возвращает серию с одной строкой или столбцом, но диапазон данных с несколькими диапазонами строк или столбцов ссылка
Хотя оба они относятся к столбцу 1 , 1 и 1: 2 - это разные типы, где 1 представляет целое число, а 1: 2 представляет срез.
С,
X_train = training_dataset.iloc[:, 1].values
Вы указываете один столбец, так что training_dataset.iloc [:, 1] представляет собой серию Pandas, поэтому .values представляет собой массив 1D Numpy
Vs.,
X_train = training_dataset.iloc[:, 1:2].values
Несмотря на то, что он становится одним столбцом, [1: 2] представляет собой фрагмент, представляющий диапазон столбцов, поэтому training_dataset.iloc [:, 1: 2] представляет собой Pandas Dataframe. Таким образом, .values представляет собой двумерный Numpy массив
. Тест выполняется следующим образом:
Создать обучающий набор данных
data = {'Height':[1, 14, 2, 1, 5], 'Width':[15, 25, 2, 20, 27]}
training_dataset = pd.DataFrame(data)
Использование .iloc [:, 1]
print(type(training_dataset.iloc[:, 1]))
print(training_dataset.iloc[:, 1].values)
# Result is:
<class 'pandas.core.series.Series'>
# Values returns a 1D Numpy array
0 15
1 25
2 2
3 20
4 27
Name: Width, dtype: int64,
Использование iloc [:, 1: 2]
print(type(training_dataset.iloc[:, 1:2]))
print(training_dataset.iloc[:, 1:2].values)
# Result is:
<class 'pandas.core.frame.DataFrame'>
# Values is a 2D Numpy array (since values of Pandas Dataframe)
[[15]
[25]
[ 2]
[20]
[27]],
X_train Values Var Type <class 'numpy.ndarray'>