<MyRusakov.ru />

Программирование на C++ с Нуля до Гуру

Программирование на C++ с Нуля до Гуру

Данный курс научит Вас программировать на языке C++, который, несмотря на свой почтенный возраст, необычайно сильно востребован. Курс состоит из 6 разделов, посмотрев которые и выполнив все упражнения, Вы с нуля освоите этот язык и сможете создавать самые разные проекты любой сложности на C++.

Для закрепления материала из уроков к ним идёт множество упражнений.

Дополнительно к курсу идёт вспомогательная система, которая не даст Вам забросить начатое на полпути.

Также вместе с курсов Вы получаете Бонус "Программирование на C++ в Unreal Engine", в котором Вы научитесь создавать игры на C++ с использованием этого движка.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Зачем Вы изучаете программирование/создание сайтов?

Массивы numpy в Python

Массивы numpy в Python

Язык Python не поддерживает непосредственно тип массива, для этого можно использовать списки, или же более эффективные средства в виде библиотеки NumPy. Массив в ней представлен типом ndarray. Так как часть библиотеки реализована на языке С, то и быстродействие ее на порядок больше, чем у стандартных списков. Данная особенность хорошо заметна при обработке больших данных. Tакие библиотеки, как Pandas и Keras построены на основе NumPy.  Конечно же,подобие массива можно создать и на основе списков, но быстродействие а также отсутствие необходимости обрабатывать их в циклах, как списки, минимизирует возможные ошибки в коде повышая при этом производительность. По настоящему оценить элегантность массивов на основе библиотеки NumPy можно на практике, для чего перейдем к коду:


# Для начала установим саму библиотеку, если же устанавливается  среда Anaconda,
# то пропускаем это действие
pip install numpy

# импортируем модуль numpy c псевдонимом 
import numpy as np

# создадим новый массив из списка чисел
n = np.array([1,2,3,4,5])

# вывод
# array([1, 2, 3, 4, 5])

Функция array получает список в качестве аргумента и преобразует его в тип ndarray. Заметьте что функция array создает копию аргумента, не затрагивая его напрямую.


# в качестве аргумента можно передать несколько списков
s = [9,8,7,6,5]

# массив из двух списков 
ns = np.array([s, s])

# проверим тип объекта
type(ns)

# вывод
# numpy.ndarray

# определим тип элементов образующих массив
ns.dtype

# вывод
# dtype('int32')

Размерности массива получают из ndim и shape. Где ndim возвращает количество строк или переданных в array аргументов, метод shape, в дополнение возвращает количество элементов в каждой строке.


# кол-во измерений массива
ns.ndim
# вывод, в массиве ns два измерения, т.е две строки
# 2

# форма массива
ns.shape

# вывод (2,5), т.е. в массиве две строки по пять чисел

# найдем размер массива, т.е. общее число элементов в нем
ns.size

# 10 элементов

# размер отдельных элементов в массиве
ns.itemsize

# вывод 4 байта

# Для перебора элементов используем цикл 
for x in ns:
  for i in x:
    print(i)

Синтаксис массива предполагает передачу данных методу array внутри списка np.array([a1, a2, a3], dtype='int32'). Таким образом передача любого количества данных в массив происходит через один список. Вторым аргументом задается тип элементов массива. Для создания и заполнения массива значениями используются встроенные методы full, ones, zeros.


# метод zeros создает и заполняет массив указанным числом элементов с нулевыми значениями 
np.zeros(10)

#вывод
#array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])

np.zeros((10, 12), dtype='int')

'''
вывод:
array([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
      [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
      [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
      [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
      [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
      [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
      [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
      [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
      [0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
      [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]])
'''

# метод full заполняет массив ненулевыми значениями
np.full((10, 12), 23)

'''
вывод:
array([[23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23],
      [23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23],
      [23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23],
      [23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23],
      [23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23],
      [23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23],
      [23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23],
      [23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23],
      [23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23],
      [23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23]])
'''

Таким образом, numpy является достаточно удобным и при этом эффективным способом создания массивов в Python.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.