#5. Изменение формы массивов, добавление и удаление осей | NumPy уроки

  Рет қаралды 16,786

selfedu

selfedu

3 жыл бұрын

Способы изменения формы (размерности) массивов. Свойство shape, методы: reshape, ravel, resize. Особенности операции транспонирования матриц (свойство T). Добавление и удаление осей функциями: expand_dims и squeeze. Объект newaxis.
Инфо-сайт: proproprogs.ru
NumPy: numpy.org/doc/stable

Пікірлер: 35
@dicloniusN35
@dicloniusN35 6 күн бұрын
Постоянно как не зайду на канал от голоса офигеваю) не только Панда а еще ктото из Сауз Парка)
@waydao4958
@waydao4958 3 жыл бұрын
Вы гениальный преподаватель, реально!
@user-qj6tk5fw9p
@user-qj6tk5fw9p 10 ай бұрын
как много информации за 1 урок! спасибо!
@86Blind
@86Blind 3 жыл бұрын
Объяснение ВЫСШИЙ пилотаж !!!
@onemasterlomaster1829
@onemasterlomaster1829 3 жыл бұрын
очень доходчиво и полезно! Хорошая подача!
@romastep6576
@romastep6576 Жыл бұрын
Лучший как всегда!!!👍
@nadyamoscow2461
@nadyamoscow2461 3 жыл бұрын
Спасибо за отличное объяснение.
@sergeyv1534
@sergeyv1534 3 жыл бұрын
Полезный урок!
@xandrviking1113
@xandrviking1113 Ай бұрын
Спасибо за урок ✌️👍
@Dmitrii-Zhinzhilov
@Dmitrii-Zhinzhilov Жыл бұрын
Благодарю! 👍🔥💯
@sergeykarandeev4303
@sergeykarandeev4303 2 жыл бұрын
Спасибо все понятно даже для... как я
@sadkid4660
@sadkid4660 Жыл бұрын
Refcheck явно не так был объяснен. Resize не был выполнен, потому что были другие ссылки на массив, а не потому, что размер отличался от исходного. Resize в общем то для этого и создан.
@selfedu_rus
@selfedu_rus Жыл бұрын
Да, спасибо! Не обратил на это внимания!
@alexanderdark
@alexanderdark 3 жыл бұрын
Было бы здорово, если бы вы показывали на примерах более практичное применение методов NumPy, как-то изменение координат, вращение рисунка, моделирование чего-то. Спасибо!
@user-nt1uf4gl1i
@user-nt1uf4gl1i 3 жыл бұрын
kzfaq.info/get/bejne/icmebJmlnNPbc2g.html
@Elena_karp88
@Elena_karp88 Жыл бұрын
Спасибо 🎉
@alexandermoysa7181
@alexandermoysa7181 7 ай бұрын
Спасибо!
@mirlan19
@mirlan19 2 жыл бұрын
спасибо
@JohnSmith-yr7ih
@JohnSmith-yr7ih 3 жыл бұрын
собираетесь ли снимать видосы по C#?
@IlyaZarubin
@IlyaZarubin 2 жыл бұрын
Подскажите пожалуйста. На 4:49 вы говорите что с одной стороны b это матрица, а с другой b - это уже вектор. В целом для визуализации во втором случае (вектор) можно представить себе вектор-столбец; правильно ли я понимаю, что в случае когда b это матрица, просто записана она в виде array([[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]) то это просто её первая строка, а ниже все заполнено нулями? Или я тогда не могу себе вообразить как одна строка может быть двумерной исходя из размерности [[..]]
@selfedu_rus
@selfedu_rus 2 жыл бұрын
У матрицы две оси, у вектора - одна, поэтому две квадратные скобки [[ ]] - это матрица (две оси), одна скобка [] - вектор.
@IlyaZarubin
@IlyaZarubin 2 жыл бұрын
@@selfedu_rus Да, это я прекрасно понимаю. Я не понимаю как одна строка может занимать что-то, что по определению имеет размерность m × n.
@selfedu_rus
@selfedu_rus 2 жыл бұрын
@@IlyaZarubin матрица может содержать и одно число, тогда строка и столбец будут содержать один элемент
@IlyaZarubin
@IlyaZarubin 2 жыл бұрын
@@selfedu_rus Спасибо вам и за ответ, и за уроки. Правда, очень талантливо и доступно!
@mantrida
@mantrida 3 жыл бұрын
Спасибо за урок! Не очень могу осознать пока один момент... Чем отличается такое: array([[1, 2], [3, 4]]) от такого: matrix([[1, 2], [3, 4]])
@selfedu_rus
@selfedu_rus 3 жыл бұрын
Почти ничем и, кроме того, matrix не рекомендуется использовать (вот ссылка numpy.org/doc/stable/reference/generated/numpy.matrix.html). Поэтому, здесь просто функция возвратила matrix, но воспринимайте ее как обычный array.
@mantrida
@mantrida 3 жыл бұрын
@@selfedu_rus Спасибо за ответ )
@vladimirdymshakov8393
@vladimirdymshakov8393 2 жыл бұрын
Все очень здорово. Понятные объяснения. Вот только узнать бы, где и как это можно с пользой применить. Хотя бы по 2 - 3 примера из реальной жизни, а чистой информации наверное можно и поменьше. Но - все равно, спасибо.
@selfedu_rus
@selfedu_rus 2 жыл бұрын
Спасибо! Масса примеров в курсе по нейронным сетям )) смотрите! )
@TheRadiant78
@TheRadiant78 3 жыл бұрын
А как проити циклом по массивам???
@selfedu_rus
@selfedu_rus 3 жыл бұрын
a = np.array([1, 2, 3]) for x in a: print(x)
@TheRadiant78
@TheRadiant78 3 жыл бұрын
@@selfedu_rus а если массив а = np. array (2,5).?? Так не работает. Цикл идёт не по индексам, I тогда для цикла весь массив, а мне надо изменять показатель индекса.
@selfedu_rus
@selfedu_rus 3 жыл бұрын
@@TheRadiant78 Насколько я знаю аргументом должен быть список или итерируемый объект, а не числа через запятую.
@ngshares490
@ngshares490 Жыл бұрын
Про добавление нескольких осей понятно. Двоеточие как краткая запись "все элементы исходного массива"? Что будет, если запись такая X[:, np.newaxis, :] , где X - двумерный массив 10 на 2 (np.random.seed(42) X = np.random.rand(10, 2)) У себя вижу, что сначала было 10 строк по 2 столбца. В середину добавили третье измерение, получилось 10 блоков, в каждом 1 строка из 2 столбцов. Получается двоеточие значит измерение массива: в одномерном массиве это будет весь исходный массив, в двумерном значения по одной из двух осей. Если ошибаюсь в рассуждении, прошу поправить. Читаю книгу и встрял с примером нахождения разности координат десяти точек на плоскости (10 строк по 2 столбца с координатами x и y). # Для каждой пары точек вычисляем разности их координат differences = X[:, np.newaxis, :] - X[np.newaxis, :, :]
@ngshares490
@ngshares490 Жыл бұрын
Все, нарисовал матрицы. В уменьшаемом X[:, np.newaxis, :] получается 10 блоков двумерных матриц размерностью (1, 2) - т.е. для каждой точки создается свой блок, в котором строка с двумя координатами одной единственной точки. Чтобы вычесть из одной матрицы другую у них должна получиться одинаковая размерность, что достигается механизмом трансляции, но количество измерений матриц должно быть равным. Вот для чего мы добавляем измерение в вычитаемое X[np.newaxis, :, :]. Размерность вычитаемого будет (1, 10, 2). После трансляции она превращается в (10, 10, 2) - 10 одинаковых блоков с двумерным массивом внутри, значениями которого будут координаты десяти точек (10х2 - 10 строк по 2 координаты в столбцах). Возвращаясь к уменьшаемому, оно также будет транслировано по 2 измерению и одна строка с координатами одной точки превратится в 10 таких одинаковых строк. В итоге размерность уменьшаемого станет (10, 10, 2). Теперь матрицы можно вычитать, т.к. размерность одинаковая. Если на бумаге нарисовать, легко понять, что по главной диагонали в разностной матрице будут нули, т.к. тут получается и уменьшаемое, и вычитаемое - координаты одной и той же точки.
Основы NumPy Python | Массивы, Матрицы И Операции Над Ними
38:26
PyLounge - программирование на Python и всё о IT
Рет қаралды 103 М.
DAD LEFT HIS OLD SOCKS ON THE COUCH…😱😂
00:24
JULI_PROETO
Рет қаралды 15 МЛН
- А что в креме? - Это кАкАооо! #КондитерДети
00:24
Телеканал ПЯТНИЦА
Рет қаралды 7 МЛН
5 полезных трюков с F строками в Python
7:59
David Arzumanyan
Рет қаралды 2,5 М.
5 правил финансовой грамотности
7:34
КРОПКА РОСТУ.
Рет қаралды 386
Пример задачи на работу с динамической памятью в С++
9:54
Оксана Еськова. Основы программирования
Рет қаралды 323
Основы Matplotlib | Построение Графиков На Python
32:53
PyLounge - программирование на Python и всё о IT
Рет қаралды 80 М.
DAD LEFT HIS OLD SOCKS ON THE COUCH…😱😂
00:24
JULI_PROETO
Рет қаралды 15 МЛН