Video: Excel Triks 3 - Slå opp ved hjelp av INDEKS og SAMMENLIGNE 2024
Ustrukturerte datafiler består av en serie biter. Filen skiller ikke bitene fra hverandre på noen måte. Du kan ikke bare se på filen og se hvilken som helst struktur fordi det ikke er noen å se. Ustrukturerte filformater stole på filbrukeren for å vite hvordan man tolker dataene.
For eksempel kan hver piksel av en bildefil bestå av tre 32-biters felt. Å vite at hvert felt er 32-bits, er opp til deg. Et overskrift i begynnelsen av filen kan gi ledetråder om tolking av filen, men likevel er det opp til deg å vite hvordan du skal samhandle med filen.
Dette eksemplet viser hvordan du arbeider med et bilde som en ustrukturert fil. Eksempelbildet er et offentlig domeneutbud fra commons. Wikimedia. org. For å jobbe med bilder, må du få tilgang til scikitbildebiblioteket, som er en gratis samling av algoritmer som brukes til bildebehandling. Her er en opplæring for dette biblioteket.
Den første oppgaven er å kunne vise bildet på skjermen ved hjelp av følgende kode. (Denne koden kan kreve litt tid til å kjøre. Bildet er klart når opptaksindikatoren forsvinner fra IPython Notebook-fanen.)
fra skjermbildet. Io importerer imread
fra skimage. forandre importstørrelsen
fra matplotlib importpiplot som plt
importmatplotlib. cm som cm
example_file = (" // opplasting.wikimedia.org /" +
"wikipedia / commons / 7 / 7d / Dog_face.png")
image = imread (example_file, as_grey = sann)
plt. imshow (bilde, cmap = cm. grå)
plt. show ()
Koden begynner ved å importere en rekke biblioteker. Den lager en streng som peker på eksempelfilen online og plasserer den i
example_file
. Denne strengen er en del av
imread ()
metoden samt
as_grey
, som er satt til
True
. Argumentet
as_grey
forteller Python å slå fargebilder til gråtoner. Eventuelle bilder som allerede er i gråskala forblir på den måten.
Når du har et bilde lastet, er det på tide å gjøre det (gjør det klart å vise på skjermen.
imshow ()
-funksjonen utfører gjengivelsen og bruker et fargetekst på gråtoner. > show ()
-funksjonen viser faktisk
bilde
for deg.
Bildet vises på skjermen når du gjengir og viser det.
I [*]:
-oppføringen forteller deg at koden fortsatt kjører, og du kan ikke gå videre til neste trinn.) Handlingen med å lukke bildet avsluttes kodesegmentet. Nå har du et bilde i minnet, og du vil kanskje finne ut mer om det.Når du kjører følgende kode, oppdager du bildetypen og størrelsen:
print ("datatype:% s, form:% s"%
(type (bilde), bildeform))
Utgangen fra denne anropet forteller deg at bildetypen er
numpy. ndarray
og at bildestørrelsen er 90 piksler med 90 piksler. Bildet er faktisk et utvalg av piksler som du kan manipulere på ulike måter. Hvis du for eksempel vil beskjære bildet, kan du bruke følgende kode for å manipulere bildearrayen:
image2 = image [5: 70, 0: 70]
plt. imshow (image2, cmap = cm. grå)
plt. Vis ()
The
numpy. ndarray
i
image2
er mindre enn den i
image
, så utgangen er også mindre. Typiske resultater vises nedenfor. Formålet med å beskjære bildet er å gjøre det til en bestemt størrelse. Begge bildene må være av samme størrelse for at du skal kunne analysere dem. Beskjæring er en måte å sikre at bildene er riktig størrelse for analyse.
Ved å beskjære bildet blir det mindre.
image3 = resize (image2, (30, 30), modus = "nærmeste")
plt.
utskrift ("datatype:% s, form:% s"%
(type3), bilde3. form))
Utgangen fra < print ()
-funksjonen forteller deg at bildet nå er 30 piksler med 30 piksler i størrelse. Du kan sammenligne det med et bilde med samme dimensjoner.
Etter at du har alle bildene i riktig størrelse, må du flate dem. En datasettrad er alltid en enkelt dimensjon, ikke to dimensjoner. Bildet er for øyeblikket et utvalg på 30 piksler med 30 piksler, slik at du ikke kan gjøre det til en del av et datasett. Følgende kode flater
image3
slik at den blir en rekke 900 elementer som er lagret i
image_row
:
image_row = image3. flatt ()
print ("datatype:% s, form:% s"%
(type (image_row), image_row. form))
Merk at typen fortsatt er
numpy. ndarray
. Du kan legge dette arrayet til et datasett og deretter bruke datasettet til analyseformål. Størrelsen er 900 elementer, som forventet.