Что такое Нампи?
Numpy — важный модуль Python (Python — это язык высокого уровня и связующий язык, который можно комбинировать с другими языками низкого уровня для эффективной и результативной разработки), в основном для обработки данных. Базовая реализация Numpy реализована на языках C и Fortran, поэтому вы можете быстро манипулировать многомерными массивами. Когда Python обрабатывает огромные объемы данных, его собственная производительность списков не идеальна (но он может динамически хранить разнородные данные), а Numpy имеет возможность распараллеливать операции, позволяя применять операции к большим массивам одновременно. Кроме того, оставшиеся тяжеловесные наборы Python, связанные с наукой о данных (например, Pandas, SciPy, Scikit-learn и т. д.), почти основаны на Numpy. Таким образом, изучение Numpy имеет прочную основу для изучения других наборов, связанных с наукой о данных, в будущем.
Основные операции Numpy
Массив Numpy
Numpy фокусируется на работе с массивом, все его функции построены на однородном и ndarray
N-мерном массиве. ndarray
Ключевыми атрибутами являются размеры (ndim), форма (shape) и числовой тип (dtype). Обычно мы называем одномерные массивы vector
, а двумерные массивы matrix
. Мы начнем вводить numpy
modular, переданные через массивы list
to 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 numberOutput: 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]])