Типы данных NumPy
Типы данных в Python
По умолчанию Python имеет следующие типы данных:
strings
- используется для представления текстовых данных, текст заключен в кавычки. например "АБВД"integer
- используется для представления целых чисел. например -1, -2, -3float
- используется для представления действительных чисел. например 1,2, 42,42boolean
- используется для представления True или False.complex
- используется для представления комплексных чисел. например 1,0 + 2,0Дж, 1,5 + 2,5Дж
Типы данных в NumPy
NumPy имеет несколько дополнительных типов данных и относится к типам данных с одним символом, например, i
для целых чисел, u
целых чисел без знака и т. д.
Ниже приведен список всех типов данных в NumPy и символы, используемые для их представления.
i
- целое числоb
- логическое значениеu
- беззнаковое целоеf
- плаватьc
- сложный поплавокm
- дельта времениM
- дата и времяO
- объектS
- нитьU
- строка юникодаV
- исправлен кусок памяти для другого типа (void)
Проверка типа данных массива
Объект массива NumPy имеет свойство dtype
, которое возвращает тип данных массива:
Пример
Получить тип данных объекта массива:
import numpy as np
arr = np.array([1, 2, 3, 4])
print(arr.dtype)
Пример
Получить тип данных массива, содержащего строки:
import numpy as np
arr = np.array(['apple',
'banana', 'cherry'])
print(arr.dtype)
Создание массивов с определенным типом данных
Мы используем array()
функцию для создания массивов, эта функция может принимать необязательный аргумент: dtype
это позволяет нам определить ожидаемый тип данных элементов массива:
Пример
Создайте массив со строкой типа данных:
import numpy as np
arr = np.array([1, 2, 3, 4],
dtype='S')
print(arr)
print(arr.dtype)
Для i
, u
, f
и
мы S
также U
можем определить размер.
Пример
Создайте массив с типом данных 4 байта integer:
import numpy as np
arr = np.array([1, 2, 3, 4],
dtype='i4')
print(arr)
print(arr.dtype)
Что делать, если значение не может быть преобразовано?
Если указан тип, в котором нельзя преобразовать элементы, то NumPy вызовет ошибку ValueError.
ValueError: в Python ValueError возникает, когда тип переданного аргумента функции является неожиданным/неправильным.
Пример
Нецелочисленная строка, такая как «a», не может быть преобразована в целое число (вызовет ошибку):
import numpy as np
arr = np.array(['a', '2', '3'], dtype='i')
Преобразование типа данных в существующих массивах
Лучший способ изменить тип данных существующего массива — создать копию массива с помощью astype()
метода.
Функция astype()
создает копию массива и позволяет указать тип данных в качестве параметра.
Тип данных можно указать с помощью строки, например , для числа 'f'
с плавающей запятой,
'i'
для целого числа и т. д., или вы можете использовать тип данных напрямую, как
float
для числа с плавающей запятой и int
для целого числа.
Пример
Измените тип данных с float на integer, используя 'i'
в качестве значения параметра:
import numpy as np
arr = np.array([1.1, 2.1, 3.1])
newarr = arr.astype('i')
print(newarr)
print(newarr.dtype)
Пример
Измените тип данных с float на integer, используя int
в качестве значения параметра:
import numpy as np
arr = np.array([1.1, 2.1, 3.1])
newarr = arr.astype(int)
print(newarr)
print(newarr.dtype)
Пример
Измените тип данных с целого на логический:
import numpy as np
arr = np.array([1, 0, 3])
newarr = arr.astype(bool)
print(newarr)
print(newarr.dtype)