Tipos de dados NumPy


Tipos de dados em Python

Por padrão, o Python tem esses tipos de dados:

  • strings- usado para representar dados de texto, o texto é fornecido entre aspas. por exemplo, "ABCD"
  • integer- usado para representar números inteiros. por exemplo -1, -2, -3
  • float- usado para representar números reais. por exemplo, 1,2, 42,42
  • boolean - usado para representar Verdadeiro ou Falso.
  • complex- usado para representar números complexos. por exemplo, 1,0 + 2,0j, 1,5 + 2,5j

Tipos de dados no NumPy

NumPy tem alguns tipos de dados extras e refere-se a tipos de dados com um caractere, como iinteiros, uinteiros sem sinal, etc.

Abaixo está uma lista de todos os tipos de dados no NumPy e os caracteres usados ​​para representá-los.

  • i - inteiro
  • b - boleano
  • u - inteiro sem sinal
  • f - flutuar
  • c - flutuação complexa
  • m - timedelta
  • M - data hora
  • O - objeto
  • S - corda
  • U - seqüência unicode
  • V - pedaço fixo de memória para outro tipo (void)

Verificando o tipo de dados de um array

O objeto array NumPy tem uma propriedade chamada dtype que retorna o tipo de dado do array:

Exemplo

Obtenha o tipo de dados de um objeto de matriz:

import numpy as np

arr = np.array([1, 2, 3, 4])

print(arr.dtype)

Exemplo

Obtenha o tipo de dados de um array contendo strings:

import numpy as np

arr = np.array(['apple', 'banana', 'cherry'])

print(arr.dtype)


Criando arrays com um tipo de dados definido

Usamos a array()função para criar arrays, esta função pode receber um argumento opcional: dtype que nos permite definir o tipo de dado esperado dos elementos do array:

Exemplo

Crie uma matriz com o tipo de dados string:

import numpy as np

arr = np.array([1, 2, 3, 4], dtype='S')

print(arr)
print(arr.dtype)

Para i, u, f, Se Upodemos definir tamanho também.

Exemplo

Crie um array com tipo de dados inteiro de 4 bytes:

import numpy as np

arr = np.array([1, 2, 3, 4], dtype='i4')

print(arr)
print(arr.dtype)

E se um valor não puder ser convertido?

Se for fornecido um tipo em que os elementos não podem ser convertidos, o NumPy gerará um ValueError.

ValueError: Em Python, ValueError é gerado quando o tipo de argumento passado para uma função é inesperado/incorreto.

Exemplo

Uma string não inteira como 'a' não pode ser convertida em inteiro (irá gerar um erro):

import numpy as np

arr = np.array(['a', '2', '3'], dtype='i')

Convertendo tipo de dados em arrays existentes

A melhor maneira de alterar o tipo de dados de um array existente é fazer uma cópia do array com o astype()método.

A astype()função cria uma cópia da matriz e permite especificar o tipo de dados como um parâmetro.

O tipo de dados pode ser especificado usando uma string, como 'f'para float, 'i'para integer etc. ou você pode usar o tipo de dados diretamente como floatpara float e intinteger.

Exemplo

Altere o tipo de dados de float para integer usando 'i'como valor de parâmetro:

import numpy as np

arr = np.array([1.1, 2.1, 3.1])

newarr = arr.astype('i')

print(newarr)
print(newarr.dtype)

Exemplo

Altere o tipo de dados de float para integer usando intcomo valor de parâmetro:

import numpy as np

arr = np.array([1.1, 2.1, 3.1])

newarr = arr.astype(int)

print(newarr)
print(newarr.dtype)

Exemplo

Altere o tipo de dados de inteiro para booleano:

import numpy as np

arr = np.array([1, 0, 3])

newarr = arr.astype(bool)

print(newarr)
print(newarr.dtype)

Teste-se com exercícios

Exercício:

NumPy usa um caractere para representar cada um dos seguintes tipos de dados, qual deles?

i = integer
 = boolean
 = unsigned integer
 = float
 = complex float
 = timedelta
 = datatime
 = object
 = string