Архив метки: Python

Как использовать функцию NumPy arange() в Python

В библиотеке Python NumPy существует множество функций для выполнения различных типов числовых и научных операций. Создание различных типов массивов для различных целей — одно из практических применений библиотеки NumPy. В Python есть встроенная функция arange() для создания списка последовательных чисел. arange() — одна из функций создания массива библиотеки NumPy для создания массива числовых диапазонов.

 

Синтаксис

np.array  np.arange([start, ]stop, [step, ], dtype=None)

 

Эта функция может принимать четыре аргумента. Начала аргумент является необязательным, который определяет начальное значение массива. Если в функции используется начальное значение, то обязательный аргумент stop потребует определения конечного значения массива. Шаг аргумент является необязательным, что определяет разницу между элементами. Значение шага по умолчанию — 1, и значение этого аргумента не может быть 0. Четвертый аргумент, dtype, определяет тип данных элемента массива, а значение по умолчанию для этого аргумента — None . Эта функция возвращает объект массива на основе значений аргументов.

 

Использование функции arange()

Вы должны установить библиотеку Python NumPy, прежде чем практиковать примеры этого руководства. Использование функции arange() с одним аргументом, двумя аргументами и тремя аргументами было показано в этом разделе этой статьи с использованием нескольких примеров.

 

Пример-1: Использование функции arange() с одним аргументом

Когда функция arange() библиотеки NumPy используется с одним аргументом, тогда в качестве значения аргумента устанавливается верхнее значение массива. Следующий скрипт создаст массив значений диапазона NumPy и распечатает различные атрибуты массива и значения массива. 12 был использован в качестве значения аргумента функции arange(), которая создаст массив NumPy из 12 элементов, которые будут начинаться с 0 и заканчиваться до 11. Затем будут напечатаны размер, размер и тип данных массива. Значения массива будут напечатаны позже.

# Импортировать NumPy



import numpy as np



# Создать одномерный массив NumPy последовательных чисел



np_array = np.arange(12)



# Распечатать различные атрибуты массива NumPy



print('Размерность массива: ', np_array.ndim)



print('Длина массива: ', np_array.size)



print('Тип данных массива: ', np_array.dtype)



# Распечатать значения массива NumPy



print('Значения массива являются:', np_array)

Пример-2: Использование функции arange() с двумя аргументами

Когда функция arange() используется с двумя аргументами, тогда начальное и конечное значения массива будут установлены как значения аргументов. В следующем примере показано, как создать массив с нижним и верхним значениями с помощью функции arange() . Первый массив создается установкой 10 в начальное значение и 25 в конечное значение. Будет создан массив из 15 последовательных целых чисел. Затем будут напечатаны два атрибута и значения массива. Второй массив создается установкой 0,5 в начальное значение и 5,5 в конце. Будет создан массив из 5 последовательных плавающих чисел. Те же атрибуты и значения этого массива будут напечатаны позже.

# Импортировать библиотеку NumPy



import numpy as np



# Создать массив NumPy целых чисел с начальным и конечным значениями



np_array1 = np.arange(10, 25)



# Распечатать различные атрибуты массива



print('The size of the array: ', np_array1.size)



print('Тип данных массива: ', np_array1.dtype)



# Распечатать значения NumPy array



print('Значения массива являются:', np_array1)



# Создайте массив NumPy чисел с плавающей запятой с начальным и конечным значениями



np_array2 = np.arange(0.5, 5.5)



# Распечатать различные атрибуты массива



print('nРазмер массива: ', np_array2.size)



print('Тип данных массива: ', np_array2.dtype)



# Распечатать значения



print('Значения массива являются:', np_array2)

 

Пример-3: Использование функции arange() с тремя аргументами

В следующем примере показано использование функции arange() с тремя аргументами. 10 устанавливается для аргумента start , 20 устанавливается для аргумента остановки и 2 устанавливается для значения аргумента step функции arange(). Он создаст массив из 5 целочисленных значений. Размер, тип данных и значения массива будут напечатаны в качестве вывода.

# Импортировать Numpy



import numpy as np



# Создать массив NumPy целых чисел со значениями начала, конца и шага



np_array = np.arange(10, 20, 2)



# Распечатать различные атрибуты массива



print('Размер массива:', np_array. size)



print('Тип данных массива:', np_array. dtype)



# Распечатать значения массива NumPy



print('Значения массива:', np_array)

 

Пример-4: Использование функции arange() с отрицательными значениями аргументов

В следующем примере показано использование функции arange() с отрицательными значениями аргументов. 50 установлено для аргумента start, 20 установлено для аргумента остановки, а 2 установлено для значения аргумента step функции arange(). Он создаст массив из 9 отрицательных целых чисел. Размер, тип данных и значения массива будут напечатаны в качестве вывода.

# Импортировать Numpy



import numpy as np



# Создать массив отрицательных чисел NumPy со значениями начала, конца и шага



np_array = np. arange(- 50 , - 5 , 5)



# Распечатать различные атрибуты массива



print('Размер массива:' , np_array. size)



print('Тип данных массива:' , np_array. dtype)



# Распечатать значения массива NumPy



print('Значения массива:' ,np_array)

 

Заключение

Способы создания массива NumPy с помощью функции arange() были описаны в этом руководстве с использованием нескольких примеров. Здесь показано создание массива с последовательными положительными и отрицательными числами с помощью этой функции. Мы надеемся, что цель использования функции arange() будет понятна читателям после прочтения этой статьи.



2021-01-27T05:59:03
Python

Скрипт Python для мониторинга сетевого подключения

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

Наличие приложений и устройств, которым необходимо регистрировать, отправлять и получать данные во внешний мир, имеет решающее значение. Таким образом, наличие инструмента, который позволяет вам отслеживать, когда ваша сеть выходит из строя, может помочь вам устранить неполадки в сети или остановить приложения перед отправкой кучи ошибок журнала.

В сегодняшней статье мы создадим простой сетевой монитор, который постоянно отслеживает ваше подключение к Интернету, отправляя запросы ping на внешний ресурс. Сценарий, который мы создадим, также будет вести журналы, когда интернет не работает и продолжительность простоя:

 

Требования к проекту

Для этого проекта нам понадобятся только:

  • Основы программирования на Python
  • Базовое понимание компьютерных сетей.
  • Удобно пользоваться терминалом.

 

Логика проекта

Прежде чем мы углубимся в кодирование, давайте обсудим и поймем, чего мы пытаемся достичь:

 

Что такое время работы и простоя сети?

Когда мы говорим о работоспособности и простоях сети, мы имеем в виду период, когда сетевое соединение полностью недоступно, и, таким образом, мы не можем общаться с устройствами за пределами нашей сети. Чем дольше недоступен Интернет, тем дольше будет время простоя.

 

Как определить время простоя

Теперь, когда мы знаем, что такое простои в Интернете, вы, возможно, задаетесь вопросом: «Как нам его определить?»

Не усложняя наш код, мы можем использовать ping. Проверка связи — это метод, при котором мы постоянно проверяем связь с надежным сервером, например Cloudflare или Google DNS, а затем ждем ответа.

Если мы пингуем сервер и нет ответа, мы отмечаем это конкретное время и продолжаем пинговать, пока не получим пинг и не отметим время.

По разнице во времени мы можем отметить, когда и как долго не работал интернет.

Мы также должны быть осторожны при пинге отдельного сервера, потому что мы можем ошибочно принять пинг за DDoS-атаку, что может привести к блокировке нашего IP-адреса, что приведет к отрицательным результатам.

Вот блок-схема, объясняющая эту концепцию:

Скрипт Python для мониторинга сетевого подключения

 

Давайте теперь погрузимся в код, показывающий, как реализовать эту логику:

 

Теперь покажите мне код

Как обычно, в Python мы начинаем с импорта необходимых библиотек. Затем мы создаем файл журнала в текущем рабочем каталоге.

Мы используем библиотеку сокетов для отправки запроса на внешний IP-адрес в первой функции. В этом примере мы используем общедоступный DNS-адрес Cloudflare, который имеет очень высокое время безотказной работы. Мы также передаем порт, и, поскольку это DNS-сервер, используем порт 53.

Затем мы проверяем, что у нас есть доступ к каталогу файла журнала, и выходим, если у нас нет доступа.

Следующим шагом будет вычисление времени отключения сетевого подключения. Наконец, мы заключаем всю функциональность в цикл, как показано в приведенном ниже коде.

import socket

import time

import datetime

import os

import sys

LOG_FNAME = "network.log"

FILE = os.path.join(os.getcwd(), LOG_FNAME)

def send_ping_request(host="1.1.1.1", port=53, timeout=3):

try:

socket.setdefaulttimeout(timeout)

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.connect((host,port))

except OSError as error:

return False

else:

s.close()

return True

def write_permission_check():

try:

with open(FILE, "a") as file:

pass

except OSError as error:

print("Ошибка создания файла журнала")

sys.exit()

finally:

pass

def calculate_time(start, stop):

time_difference = stop - start

seconds = float(str(time_difference.total_seconds()))

return str(datetime.timedelta(seconds=seconds)).split(".")[0]

def mon_net_connection(ping_freq=2):

monitor_start_time = datetime.datetime.now()

motd = "Мониторинг сетевого подключения начат в: " + str(monitor_start_time).split(".")[0] + " Отправка запроса ping в " + str(ping_freq) + " секунды"

print(motd)



with open(FILE, "a") as file:

file.write("n")

file.write(motd + "n")

while True:

if send_ping_request():

time.sleep(ping_freq)

else:

down_time = datetime.datetime.now()

fail_msg = "Сетевое соединение недоступно в: " + str(down_time).split(".")[0]

print(fail_msg)

with open(FILE, "a") as file:

file.write(fail_msg + "n")

i = 0

while not send_ping_request():

time.sleep(1)

i += 1

if i >= 3600:

i = 0

now = datetime.datetime.now()

continous_message = "Постоянная недоступность сети: " + str(now).split(".")[0]

print(continous_message)

with open(FILE, "a") as file:

file.write(continous_message + "n")

up_time = datetime.datetime.now()

uptime_message = "Сетевое подключение восстановлено: " + str(up_time).split(".")[0]



down_time = calculate_time(down_time, up_time)

_m = "Подключение к сети было недоступно для " + down_time



print(uptime_message)

print(_m)



with open(FILE, "a") as file:

file.write(uptime_message + "n")

file.write(_m + "n")

mon_net_connection()




Заключение

Используя приведенный выше сценарий, мы можем отслеживать, когда сетевое соединение потеряно, и постоянно регистрировать его, пока оно не станет доступным. Этот простой сценарий открыт для улучшений. Не стесняйтесь изменять код в соответствии со своими потребностями и расширять его.



2021-01-25T11:27:42
Python

Как разбить строку в Python

При работе со строками одной из повседневных операций является разделение строки на массив подстрок с использованием заданного разделителя.

В этой статье мы поговорим о том, как разбить строку в Python.

.split () Метод

В Python строки представлены как неизменяемые объекты str . Класс str имеет ряд строковых методов, которые позволяют управлять строкой.

Метод .split() возвращает список подстрок, разделенных разделителем. Требуется следующий синтаксис:

str.split(delim=None, maxsplit=-1)

Разделитель может быть символом или последовательностью символов, а не регулярным выражением.

В примере ниже мы разделяем строку s используя запятую ( , ) в качестве разделителя:

s = 'Sansa,Tyrion,Jon's.split(',')

Результатом является список строк:

['Sansa', 'Tyrion', 'Jon']

Строковые литералы обычно заключаются в одинарные кавычки, хотя вы также можете использовать двойные кавычки.

Последовательность символов также может использоваться в качестве разделителя:

s = 'Sansa::Tyrion::Jon's.split('::')

['Sansa', 'Tyrion', 'Jon']

Когда maxsplit , он ограничивает количество разделений. Если не указано или -1 , ограничение на количество разделений отсутствует.

s = 'Sansa;Tyrion;Jon's.split(';', 1)

В списке результатов будет максимальное maxsplit+1 элементов maxsplit+1 :

['Sansa', 'Tyrion;Jon']

Если delim не указан или имеет значение Null , строка будет разделена с использованием пробела в качестве разделителя. Все последовательные пробелы считаются одним разделителем. Кроме того, если строка содержит завершающие и ведущие пробелы, в результате не будет пустых строк.

Чтобы лучше проиллюстрировать это, давайте взглянем на следующий пример:

' Daenerys  Hodor Arya   Jaime Bran '.split()

['Daenerys', 'Hodor', 'Arya', 'Jaime', 'Bran']

' Daenerys  Hodor Arya   Jaime Bran '.split(' ')

['', 'Daenerys', '', 'Hodor', 'Arya', '', '', 'Jaime', 'Bran', '']

Если разделитель не используется, возвращаемый список не содержит пустых строк. Если в качестве разделителя установлено пустое пространство ' ' то начальные, конечные и последовательные пробелы приведут к тому, что результат будет содержать пустые строки.

Выводы

Разделение строк — одна из самых основных операций. Прочитав это руководство, вы должны хорошо понимать, как разбивать строки в Python.

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



2021-01-07T20:32:08
Python

Обратный список Python

При работе со списками в Python иногда может потребоваться перевернуть элементы списка. Обратное преобразование списка означает, что первый элемент списка становится последним, второй — предпоследним, последний элемент становится первым и так далее.

В Python есть несколько разных способов перевернуть список, в зависимости от того, что вы пытаетесь сделать.

reverse() метод

reverse() — это метод типа данных списка, который меняет местами элементы списка. Этот метод изменяет исходный список, а не создает новый.

Синтаксис метода reverse() следующий:

list.reverse()

reverse() не принимает аргументы.

Вот пример:

capitals = ['Oslo', 'Skopje', 'Riga', 'Madrid']

capitals.reverse()

print('Reversed list:', capitals)

Reversed list: ['Madrid', 'Riga', 'Skopje', 'Oslo']

функция reversed()

reversed() — это встроенная функция Python, которая возвращает обратный итератор заданного итеративного объекта. Исходный список не изменяется.

Если вы хотите перебирать элементы списка только в обратном порядке, предпочтительнее использовать функцию reversed() , так как это быстрее, чем перестановка элементов на месте`.

Синтаксис функции reversed() следующий:

reversed(seq) 

Где seq — это список, который нужно восстановить.

Ниже приведен пример использования функции reversed() для перебора элементов списка в обратном порядке:

numbers = [1, 2, 3, 4]

for i in reversed(numbers) :
    print(i)

4
3
2
1

Если вы хотите преобразовать обратный итератор в список, используйте конструктор list() :

numbers = [1, 2, 3, 4]

print(list(reversed(numbers)))

[4, 3, 2, 1]

Перевернуть список с помощью нарезки

Нотация срезов — это встроенная функция Python, которая позволяет извлекать части последовательного типа данных. Хотя это и не очень Pythonic, вы можете использовать нотацию [::-1] перевернув список:

numbers = [1, 2, 3, 4]

print(numbers[::-1])

Результатом нарезки списка является новый список, содержащий извлеченные элементы. Исходный список не изменяется.

[4, 3, 2, 1]

Выводы

Чтобы перевернуть список Python на месте, используйте метод reverse() . Если вам нужно создать только обратный итератор, используйте функцию reversed() .

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



2021-01-05T14:24:35
Python

Абсолютное значение в Python

Числа — очень важный аспект любого языка программирования. Числа включают целые числа, числа с плавающей запятой и комплексные числа. Числа могут быть положительными или отрицательными. Иногда нам нужно получить абсолютное значение числа для выполнения математических операций, таких как сложение, вычитание и т. д. Абсолютное значение обозначает неотрицательное значение данного числа. Python предоставляет встроенную функцию abs() для поиска абсолютного значения числа. В этой статье объясняется использование функции abs() на простых примерах.

 

Синтаксис функции abs()

Функция abs() принимает число и возвращает абсолютное значение. Синтаксис функции abs() следующий:

abs(number)

 

Число может быть целым числом, числом с плавающей запятой или комплексным числом. В случае комплексного числа функция abs() возвращает значение величины.

 

Нахождение абсолютного значения целых чисел и числа с плавающей запятой

Теперь давайте воспользуемся функцией abs(), чтобы найти абсолютное значение целых чисел и чисел с плавающей запятой.

# Программа Python для поиска абсолютного значения



# Использование функции abs()



print("Абсолютное значение -20 равно:", abs(- 20))



print("Абсолютное значение -40,5 равно:", abs(- 40,5))



print("Абсолютное значение -10.9867 равно:", abs(- 10.9867))



print("Абсолютное значение 50,09 равно:", abs(50.09))



print ("Абсолютное значение -101,98 равно:", abs(- 101,98))



print("Абсолютное значение 30,08 равно:", abs(30,08))



print("Абсолютное значение -200 равно:", abs(- 200))



print("Абсолютное значение -10 равно:", abs(- 10))



print("Абсолютное значение -90 равно:", abs(- 90))




Вывод

На выходе отображаются абсолютные значения различных чисел.

 

Функция abs() принимает только число в качестве аргумента. Если мы передаем в качестве аргумента какой-либо символ или строковое значение, интерпретатор Python выдает ошибку “bad operand type for abs()”.

Программа Python для поиска абсолютного значения

# использование функции abs()



print(abs("a"))




Теперь давайте найдем абсолютное значение двух чисел и вычислим сумму.

# Программа Python для нахождения абсолютного значения

# использование функции abs()



# объявление первого числа

num1 = - 10



# объявление второго числа

num2 = - 20.04



# вывод суммы

print("сумма: ", abs(num1+num2))


 

Нахождение абсолютного значения комплексных чисел

Как мы ранее обсуждали, в случае комплексного числа функция abs() возвращает значение величины. Давайте воспользуемся функцией abs(), чтобы найти величину комплексного числа в нашем скрипте.

# Программа Python для определения абсолютного значения 

# с помощью функции abs()

num = -4-3j

print("Величина -4-3j равна:", abs(num))



num = 4+3j

print("Величина 4+3j равно: ", abs(num))



num = 5-7j

print(" Величина 5-7j равна: ", abs(num))



num = -1+6j

print ("Величина -1+6j равна:", abs(num))




Заключение

Функция abs() вычисляет и возвращает абсолютное значение заданного числа. В случае комплексных чисел функция abs() возвращает значение величины. Эта статья демонстрирует использование функции abs() с примерами.



2021-01-01T23:06:39
Python

Оператор модуля Python

Операция по модулю — это арифметическая операция, которая находит остаток от деления одного числа на другое. Остаток называется модулем операции.

Например, 5, разделенное на 3, равно 1 с остатком 2, а 8, разделенное на 4, равно 2, с остатком 0.

Оператор модуля Python

В Python оператор по модулю представлен знаком процента ( % ). Синтаксис следующий:

num1 % num2

Вот пример:

5 % 4

1

Если делитель (второй аргумент) равен нулю, возникает ZeroDivisionError :

5 % 0

ZeroDivisionError: integer division or modulo by zero

Оператор по модулю также принимает плавающие числа в качестве аргументов:

6.8 % 3.4

0.0

При форматировании строк символ % представляет оператор интерполяции.

Примеры

Один из распространенных случаев использования оператора по модулю — проверка четности или нечетности числа. Если число, деленное на 2, не имеет остатка, то это четное число. В противном случае, если остается 1, то число нечетное:

num = 11

if (num % 2) == 0:
   print(num, "is even")
else:
   print(num, "is odd")

Если вы запустите приведенный выше код, 11 % 2 оставит остаток 1 и будет выполнен код внутри оператора else :

11 is odd

Вот еще один пример, показывающий, как с помощью оператора по модулю проверить, является ли число простым. Простое число — это целое положительное число, которое без остатка можно разделить только на себя и на 1:

def isPrimeNumber(num):
  if num < 1:
    return False
  for i in range(2, num):
    if (num % i) == 0:
      return False
  else:
    return True

Сначала мы проверяем, является ли число num положительным числом. Затем мы проверяем, делится ли число на другое число в диапазоне от 2 до num без напоминания. Если ни одно из условий не выполняется, число простое.

Оператор по модулю также может использоваться для преобразования единиц измерения. В следующем примере показано, как преобразовать секунды в минуты:

def secondsToMinutes(sec):
  seconds = sec // 60
  minutes = sec % 60
  return "%d minutes and %d seconds" % (minutes, seconds)

secondsToMinutes(657)

'57 minutes and 10 seconds'

Двойная косая черта ( // ), оператор деления по этажам округляет результат до ближайшего целого числа.

Выводы

В этой статье мы показали вам, как использовать оператор Python по модулю.

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



2021-01-01T16:20:37
Python