NumPy
Атрибуты
Основным объектом NumPy является массив (в numpy называется numpy.ndarray). Это многомерный массив элементов (обычно чисел), одного типа одним словом ботаника(хоть и ботаника это и связано с цветами ну и ладно).
Важные атрибуты это:
ndarray.ndim - число измерений (чаще их называют "оси") массива.
ndarray.shape - размеры массива, его форма. Это кортеж натуральных чисел, показывающий длину массива по каждой оси. Для матрицы из n строк и m столбов, shape будет (n,m). Число элементов кортежа shape равно ndim.
ndarray.size - количество элементов массива. Очевидно, равно произведению всех элементов атрибута shape.
ndarray.dtype - объект, описывающий тип элементов массива. Можно определить dtype, используя стандартные типы данных Python. NumPy здесь предоставляет целый букет возможностей, как встроенных, например: bool_, character, int8, int16, int32, int64, float8, float16, float32, float64, complex64, object_, так и возможность определить собственные типы данных, в том числе и составные.
ndarray.itemsize - размер каждого элемента массива в байтах.
ndarray.data - буфер, содержащий фактические элементы массива. Обычно не нужно использовать этот атрибут, так как обращаться к элементам массива проще всего с помощью индексов.
Создание и печать массивов
В NumPy существует много способов создать массив. Один из наиболее простых - создать массив из обычных списков или кортежей Python, используя функцию numpy.array() (запомните: array - функция, создающая объект типа ndarray):
import numpy as np a = np.array([1, 2, 3])
a
type(a)
Функция array() трансформирует вложенные последовательности в многомерные массивы. Тип элементов массива зависит от типа элементов исходной последовательности (но можно и переопределить его в момент создания).
b = np.array([[1.5, 2, 3], [4, 5, 6]])
b
Также можно переосмыслить тип сейчас:
b = np.array([[1.5, 2, 3], [4, 5, 6]], dtype=np.complex)
b
Функция array() не единственная функция для создания массивов. Обычно элементы массива вначале неизвестны, а массив, в котором они будут храниться, уже нужен. Поэтому имеется несколько функций для того, чтобы создавать массивы с каким-то исходным содержимым (по умолчанию тип создаваемого массива — float64).
Функция zeros() создает массив из нулей, а функция ones() — массив из единиц. Обе функции принимают кортеж с размерами, и аргумент dtype:
np.zeros((3, 5))
np.ones((2, 2, 2))
fromfunction(): применяет функцию ко всем комбинациям индексов
def f1(i, j):
return 3 * i + j
np.fromfunction(f1, (3, 4))
np.fromfunction(f1, (3, 3))
Если массив слишком большой, чтобы его печатать, NumPy автоматически скрывает центральную часть массива и выводит только его уголки.
print(np.arange(0, 3000, 1))
Если вам действительно нужно увидеть весь массив, используйте функцию numpy.set_printoptions:
np.set_printoptions(threshold=np.nan)
Пончик(дополнение)
Первый версия пончика была сделана на языке программирования C, но как же сделать на python для этого нам и нужен NumPy ну что поехали скачала нам нужно подключить NumPy подключаем
import numpt as np
Далее вводим разрешение экрана типы ну и то что нам пригодится
screen_size = 40
theta_spacing = 0.07
phi_spacing = 0.02
illumination = np.fromiter(".,-~:;=!*#$@", dtype="<U1")
A = 1
B = 1
R1 = 1
R2 = 2
K2 = 5
K1 = screen_size * K2 * 3 / (8 * (R1 + R2))
Ну вроде идет гладко, далее нам нужно подключить функцию которая будет у нас все это производить правда из-за такого большого текста у меня будет логать поэтому советую перейти по ссылке по GitHub там будет весь код