Атрибуты массива и операции с массивом
Атрибуты массива
Каждый массив 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)