Найти тему
Удалёнка

NumPy Rus

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 там будет весь код