Что такое Нампи?

Numpy — важный модуль Python (Python — это язык высокого уровня и связующий язык, который можно комбинировать с другими языками низкого уровня для эффективной и результативной разработки), в основном для обработки данных. Базовая реализация Numpy реализована на языках C и Fortran, поэтому вы можете быстро манипулировать многомерными массивами. Когда Python обрабатывает огромные объемы данных, его собственная производительность списков не идеальна (но он может динамически хранить разнородные данные), а Numpy имеет возможность распараллеливать операции, позволяя применять операции к большим массивам одновременно. Кроме того, оставшиеся тяжеловесные наборы Python, связанные с наукой о данных (например, Pandas, SciPy, Scikit-learn и т. д.), почти основаны на Numpy. Таким образом, изучение Numpy имеет прочную основу для изучения других наборов, связанных с наукой о данных, в будущем.

Основные операции Numpy

Массив Numpy
Numpy фокусируется на работе с массивом, все его функции построены на однородном и ndarrayN-мерном массиве. ndarrayКлючевыми атрибутами являются размеры (ndim), форма (shape) и числовой тип (dtype). Обычно мы называем одномерные массивы vector, а двумерные массивы matrix. Мы начнем вводить numpymodular, переданные через массивы listto numpy.array()create.

>>> import numpy as np 
>>> np1 = np.array([1, 2, 3]) 
>>> np2 = np.array([3, 4, 5])
>>> print(np1 + np2) # [4 6 8]
>>> print(np1.ndim, np1.shape, np1.dtype) # 1 (3,) int32 => 1D array, 3 elements, data type
>>> Np3 = np.array([1, 2, 3, 4, 5, 6])

Тип данных Numpy:

Типы данных Numpy следующие:

У каждого типа данных есть соответствующая функция преобразования данных, справочный пример выглядит следующим образом:

>>> np.int8(12.334)
output: 12
>>> np.float64(12)
output: 12.0
>>> np.float(True)
output: 1.0
>>> bool(1)
output: True

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

>>> a = np.arange(5, dtype=float)
>>> print(a)
output: array([ 0.,  1.,  2.,  3.,  4.])
  • Обратите внимание, что комплексные числа нельзя преобразовать в целые числа или числа с плавающей запятой. Например, следующий код вызовет ошибку.

# float(42 + 1j)

Свойства массива Numpy.ndarray

  • Атрибут dtype, тип данных массива ndarray и тип типа данных были описаны ранее.
>>> np.arange(4, dtype=float)
output: array([ 0.,  1.,  2.,  3.])
>>> np.arange(4, dtype='D') #'D' indicates double-precision number 
Output: array([ 0.+0.j,  1.+0.j,  2.+0.j,  3.+0.j])
>>> np.array([1.22,3.45,6.779], dtype='int8')
output: array([1, 3, 6], dtype=int8)
  • Атрибут Ndim количество измерений массива
>>> a = np.array([[1,2,3], [7,8,9]])
>>> print(a.ndim)
Output: 2
  • Атрибут формы, масштаб объекта массива, для матрицы, т.е. n строк и m столбцов, фигура представляет собой кортеж (кортеж)
>>> print(a.shape)
output:(2, 3)
  • Атрибут размера используется для отображения количества элементов,
>>> print(a.size)
output: 6
  • Свойство itemsize возвращает количество байтов, занимаемых каждым элементом в массиве.
>>> print(a.itemsize)
output: 4
  • Атрибут nbytes, если вы хотите узнать количество байтов, необходимых для всего массива, вы можете использовать атрибут nbytes. Его значение равно значению атрибута size массива, умноженному на значение атрибута itemsize.
>>> print(a.nbytes)
Output: 24
>>> print(a.size*a.itemsize)
output: 24
  • Атрибут T, транспонирование массива
>>> b = np.arange(24).reshape(4,6)
>>> print(b)
Output: array([[ 0,  1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10, 11],
       [12, 13, 14, 15, 16, 17],
       [18, 19, 20, 21, 22, 23]])
>>> print(b.T)
Output: array([[ 0,  6, 12, 18],
       [ 1,  7, 13, 19],
       [ 2,  8, 14, 20],
       [ 3,  9, 15, 21],
       [ 4, 10, 16, 22],
       [ 5, 11, 17, 23]])
  • Действительные и мнимые атрибуты комплексных чисел, действительные и мнимые атрибуты
>>> d = np.array([1.2+2j, 2+3j])
>>> print(d)
Output: array([ 1.2+2.j,  2.0+3.j])
# Real property returns the real part of the array
>>> print(d.real)
Output: array([ 1.2,  2. ])

Мнимый атрибут возвращает мнимую часть массива

>>> print(d.imag)
Output: array([ 2.,  3.])
  • Свойство flat возвращает объект numpy.flatiter, который можно перебирать по объекту.
>>> e = np.arange(6).reshape(2,3)
>>> print(e)
Output: array([[0, 1, 2],
            [3, 4, 5]])
>>> f = e.flat
>>> print(f)
Output: <numpy.flatiter at 0x65eaca0>
>>> for item in f:
        print(item)
Output:   0
          1
          2
          3
          4
          5

Его можно проиндексировать по местоположению следующим образом:

>>> print(f[2])
Output: 2
>>> print(f[[1,4]])
Output: array([1, 4])

Также может быть назначено

>>> e.flat=7
>>> print(e)
Output: array([[7, 7, 7],
              [7, 7, 7]])
>>> e.flat[[1,4]]=1
>>> print(e)
Output: array([[7, 1, 7],
             [7, 1, 7]])