NumPy datatipes


Datatipes in Python

By verstek het Python hierdie datatipes:

  • strings- gebruik om teksdata voor te stel, die teks word onder aanhalingstekens gegee. bv "ABCD"
  • integer- gebruik om heelgetalle voor te stel. bv -1, -2, -3
  • float- gebruik om reële getalle voor te stel. bv 1,2, 42,42
  • boolean- word gebruik om Waar of Onwaar voor te stel.
  • complex- gebruik om komplekse getalle voor te stel. bv 1.0 + 2.0j, 1.5 + 2.5j

Datatipes in NumPy

NumPy het 'n paar ekstra datatipes, en verwys na datatipes met een karakter, soos ivir heelgetalle, uvir ongetekende heelgetalle ens.

Hieronder is 'n lys van alle datatipes in NumPy en die karakters wat gebruik word om hulle voor te stel.

  • i- heelgetal
  • b- boolean
  • u- ongetekende heelgetal
  • f- dryf
  • c- komplekse vlot
  • m- tyddelta
  • M- Datum Tyd
  • O- voorwerp
  • S- tou
  • U- Unicode-string
  • V- Vaste stuk geheue vir ander tipe (leeg)

Kontroleer die datatipe van 'n skikking

Die NumPy skikking voorwerp het 'n eienskap genoem dtype wat die datatipe van die skikking terugstuur:

Voorbeeld

Kry die datatipe van 'n skikkingsvoorwerp:

import numpy as np

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

print(arr.dtype)

Voorbeeld

Kry die datatipe van 'n skikking wat stringe bevat:

import numpy as np

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

print(arr.dtype)


Skep skikkings met 'n gedefinieerde datatipe

Ons gebruik die array()funksie om skikkings te skep, hierdie funksie kan 'n opsionele argument neem: dtype dit laat ons toe om die verwagte datatipe van die skikkingselemente te definieer:

Voorbeeld

Skep 'n skikking met datatipe string:

import numpy as np

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

print(arr)
print(arr.dtype)

Vir i, u, f, Sen Uons kan ook grootte definieer.

Voorbeeld

Skep 'n skikking met datatipe 4 grepe heelgetal:

import numpy as np

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

print(arr)
print(arr.dtype)

Wat as 'n waarde nie omgeskakel kan word nie?

As 'n tipe gegee word waarin elemente nie uitgegooi kan word nie, sal NumPy 'n ValueError opwek.

ValueError: In Python word ValueError opgewek wanneer die tipe argument wat aan 'n funksie geslaag is, onverwags/verkeerd is.

Voorbeeld

'n Nie-heelgetalstring soos 'a' kan nie na heelgetal omgeskakel word nie (sal 'n fout opwek):

import numpy as np

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

Omskakeling van datatipe op bestaande skikkings

Die beste manier om die datatipe van 'n bestaande skikking te verander, is om 'n kopie van die skikking met die astype()metode te maak.

Die astype()funksie skep 'n kopie van die skikking, en laat jou toe om die datatipe as 'n parameter te spesifiseer.

Die datatipe kan gespesifiseer word deur 'n string te gebruik, soos 'f'vir float, 'i'vir heelgetal ens. of jy kan die datatipe direk gebruik soos floatvir float en intvir heelgetal.

Voorbeeld

Verander datatipe van dryf na heelgetal deur 'i'as parameterwaarde te gebruik:

import numpy as np

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

newarr = arr.astype('i')

print(newarr)
print(newarr.dtype)

Voorbeeld

Verander datatipe van dryf na heelgetal deur intas parameterwaarde te gebruik:

import numpy as np

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

newarr = arr.astype(int)

print(newarr)
print(newarr.dtype)

Voorbeeld

Verander datatipe van heelgetal na boolean:

import numpy as np

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

newarr = arr.astype(bool)

print(newarr)
print(newarr.dtype)

Toets jouself met oefeninge

Oefening:

NumPy gebruik 'n karakter om elk van die volgende datatipes voor te stel, watter een?

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