Атрибуты массива и операции с массивом

Атрибуты массива

Каждый массив Numpy является объектом класса numpy, поэтому, когда мы создаем массив numpy, он может получить доступ к некоторым атрибутам из класса numpy, поэтому мы должны знать о некоторых из этих атрибутов, если хотим работать с данными.

поэтому сначала нам нужно 3 массива для работы.

a1 = np.arange(10)   # 1D or vector
a2 = np.arange(12,dtype=float).reshape(3,4)   # 2D or matrix
a3 = np.arange(8).reshape(2,2,2)  #3D or tensor

print(a1)
print(a2)
print(a3)

ndim

мы можем использовать любой массив, чтобы узнать, какова размерность этого массива. он сообщает, является ли данное измерение массивов 1D, 2D, 3D или nD.

# ndim

print(a1.ndim)
print(a2.ndim)
print(a3.ndim)

форма

например, он сообщает форму массива, если это матрица, он сообщит вам количество строк и столбцов.

print(a3.shape)
a3

(2,2,2)

ну, это означает, что у нас есть 3D-массив, состоящий из двух 2D-массивов, и каждый 2D-массив имеет 2 строки и 2 столбца.

он сообщает, сколько элементов существует в каждом измерении этого массива

размер

он сообщает количество элементов, присутствующих в массиве nd

размер элемента

он сообщает размер элемента данного массива в байтах.

# itemsize
i1 = np.arange(10, dtype=np.int16)
i2 = np.arange(10)

print(i1)
print(i1.itemsize)
print(i2)
print(i2.itemsize)

тип

он сообщает тип данных элементов, присутствующих в массиве nd.

# dtype

print(a1.dtype)
print(a2.dtype)

print(i1.dtype)

Изменение типа данных

скажем, у меня есть массив nd типа данных int64, но мне не нужен такой большой размер для хранения чего-то вроде чьего-то возраста, поэтому я могу изменить его на int8, чтобы он занимал меньше места в ОЗУ.

# astype
print(a3.dtype)
a3.astype(np.int8)

Операции с массивами

во-первых, для простоты мы создаем два 2D-массива a1 и a2.

a1 = np.arange(12).reshape(3,4)
a2 = np.arange(12,24).reshape(3,4)

print(a1)
print(a2)

есть 2 типа операций скалярные и векторные

скалярные операции

арифметическая операция

любая операция между матрицей и скалярным числом. любые операции, которые мы видели в python, такие как +, -, *, /, %, ** и т. д.

реляционная операция

мы можем видеть, соответствует ли каждый элемент, присутствующий в массиве, условию реляционного оператора или нет, если он проходит, он говорит True или False в противном случае.

операторы отношения: ›, ‹, != , == и т. д.

# relational

print(a2)
a2 > 15

векторные операции

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

арифметические операции

# arithmetic
print(a1)
print(a2)

print(a1 + a2)
print(a2 ** 2)