Для новичков есть туева хуча курсов, статей, руководств, а что есть для людей которые знают, что такое numpy, знают как программировать на python? 100 задач для numpy? И это всё? А ведь есть целое направление матричного программирования, в котором библиотека numpy занимает почетное место. Эти белые пятна на карте надо закрашивать в наши цвета.
Для начала поговорим о матричном программировании или numpy-программировании, если хотите. Это особенный стиль программирования в котором не используются циклы и инструкции if. Как такое возможно? Вот об этом и будет цикл статей, где на практике будут решаться задачи с помощью этого необычного стиля программирования.
Давайте возьмем простенькую задачу, для решения которой нам не понадобится даже numpy, однако все условия матричного программирования будут соблюдены. Итак, есть набор данных, состоящих из входящих параметров (x) и целевых (y), который надо разделить на обучающую и проверочные выборки в какой-то пропорции, по умолчанию 0.8 - train, 0.2 - test. Постойте, но есть ведь мощная функция в библиотеке sklearn (раздел model_selection) train_test_split! Зачем изобретать велосипед? Затем, что таким образом можно на практике изучить, а потом уже использовать полученные знания. Задача то демонстрационная, вот мы и продемонстрируем:
Сначала мы рассчитали индекс делителя, как целое число от произведения длины x на долю первой части, которая составляет 1 - size. Почему берется длина x, а не y? Да потому что по оси строк (axis=0) они должны быть одной длины. Здесь такой проверки нет, но никто не запрещает вам её сделать. Функции возвращает сначала первую (обучающую) и вторую (проверочную) подвыборки x, потом первую и вторую подвыборки y, что и требовалось получить.
Кто-то скажет: "Ну это слишком просто!". Дальше будем решать и более сложные задачи. Самое главное, чтобы читателям было понятно, как решается задача. Надеюсь и дальше вам будет интересно.