Βίντεο: Web Scraping with Nokogirl/Kimono by Robert Krabek 2024
Τα αδόμητα αρχεία δεδομένων αποτελούνται από μια σειρά bit. Το αρχείο δεν διαχωρίζει τα δυαδικά ψηφία το ένα από το άλλο με οποιονδήποτε τρόπο. Δεν μπορείτε απλώς να κοιτάξετε το αρχείο και να δείτε οποιαδήποτε δομή, επειδή δεν υπάρχει κανένας να δει. Οι μη δομημένες μορφές αρχείων βασίζονται στον χρήστη του αρχείου για να γνωρίζουν πώς να ερμηνεύουν τα δεδομένα.
Για παράδειγμα, κάθε εικονοστοιχείο ενός αρχείου εικόνας θα μπορούσε να αποτελείται από τρία πεδία 32-bit. Η γνώση ότι κάθε πεδίο είναι 32-bit εξαρτάται από εσάς. Μια κεφαλίδα στην αρχή του αρχείου μπορεί να παράσχει ενδείξεις για την ερμηνεία του αρχείου, αλλά ακόμα και έτσι, εξαρτάται από εσάς να μάθετε πώς να αλληλεπιδράτε με το αρχείο.
Αυτό το παράδειγμα δείχνει πώς να δουλέψετε με μια εικόνα ως αδόμητο αρχείο. Η εικόνα του παραδείγματος είναι μια προσφορά δημόσιου τομέα από κοινά. wikimedia. org. Για να εργαστείτε με εικόνες, πρέπει να έχετε πρόσβαση στη βιβλιοθήκη scikit-image, η οποία είναι μια δωρεάν συλλογή αλγορίθμων που χρησιμοποιούνται για την επεξεργασία εικόνων. Εδώ είναι ένα φροντιστήριο για αυτήν τη βιβλιοθήκη.
Η πρώτη εργασία είναι να μπορείτε να εμφανίσετε την εικόνα στην οθόνη χρησιμοποιώντας τον ακόλουθο κώδικα. (Αυτός ο κωδικός μπορεί να χρειαστεί λίγο χρόνο για να εκτελεστεί. Η εικόνα είναι έτοιμη όταν εξαφανιστεί ο δείκτης κατειλημμένης από την καρτέλα IPython Notebook.)
από το skimage. io import imread
από το skimage. μετατροπή μεγέθους εισαγωγής
από matplotlib import pyplot ως plt
εισαγωγή matplotlib. cm ως cm
example_file = (" // upload.wikimedia.org/" +
"wikipedia / commons / 7 / 7d / Dog_face. png")
image = imread (example_file, as_grey = True)
plt. imshow (εικόνα, cmap = cm γκρι)
plt. show ()
Ο κώδικας αρχίζει με την εισαγωγή ενός αριθμού βιβλιοθηκών. Στη συνέχεια, δημιουργεί μια συμβολοσειρά που οδηγεί στο παράδειγμα του αρχείου online και το τοποθετεί στο
example_file
. Αυτή η συμβολοσειρά είναι μέρος της κλήσης μεθόδου
imread ()
, μαζί με
as_grey
, η οποία έχει οριστεί σε
True
. Το όρισμα
as_grey
λέει στην Python να μετατρέψει τις έγχρωμες εικόνες σε κλίμακα του γκρι. Οποιεσδήποτε εικόνες που είναι ήδη σε κλίμακα του γκρι παραμένουν με αυτόν τον τρόπο.
Τώρα που έχετε φορτώσει μια εικόνα, ήρθε η ώρα να την εμφανίσετε (να είναι έτοιμη να εμφανιστεί στην οθόνη.) Η λειτουργία
imshow ()
εκτελεί την απόδοση και χρησιμοποιεί ένα χρωματικό χάρτη σε κλίμακα του γκρι. > Εμφάνιση ()
Η λειτουργία εμφανίζει την εικόνα
για σας.
Η εικόνα εμφανίζεται στην οθόνη μετά την εμφάνιση και την εμφάνισή της
Στο [*]:
σας λέει ότι ο κώδικας εξακολουθεί να εκτελείται και δεν μπορείτε να προχωρήσετε στο επόμενο βήμα.) Η πράξη λήξης της εικόνας τερματίζει το τμήμα κωδικών. τώρα έχετε μια εικόνα στη μνήμη και ίσως να θέλετε να μάθετε περισσότερα για αυτήν.Όταν εκτελείτε τον παρακάτω κώδικα, ανακαλύπτετε τον τύπο και το μέγεθος της εικόνας:
print ("τύπος δεδομένων:% s, σχήμα:% s"%
Η έξοδος από αυτή την κλήση σας λέει ότι ο τύπος εικόνας είναι
numpy. ndarray
και ότι το μέγεθος της εικόνας είναι 90 εικονοστοιχεία έως 90 εικονοστοιχεία. Η εικόνα είναι στην πραγματικότητα μια σειρά από εικονοστοιχεία που μπορείτε να χειριστείτε με διάφορους τρόπους. Για παράδειγμα, εάν θέλετε να περικόψετε την εικόνα, μπορείτε να χρησιμοποιήσετε τον ακόλουθο κώδικα για να χειριστείτε τη συστοιχία εικόνων:
image2 = image [5: 70, 0: 70]
plt. imshow (εικόνα2, cmap = cm γκρι)
plt. εμφάνιση ()
Το
numpy. Το ndarray
στο
image2
είναι μικρότερο από το
image
, επομένως και η παραγωγή είναι μικρότερη. Τα τυπικά αποτελέσματα παρουσιάζονται παρακάτω. Ο σκοπός της περικοπής της εικόνας είναι να γίνει ένα συγκεκριμένο μέγεθος. Και οι δύο εικόνες πρέπει να έχουν το ίδιο μέγεθος για να τις αναλύσετε. Η περικοπή είναι ένας τρόπος να διασφαλιστεί ότι οι εικόνες είναι το σωστό μέγεθος για ανάλυση.
Η περικοπή της εικόνας την καθιστά μικρότερη.
Μια άλλη μέθοδος που μπορείτε να χρησιμοποιήσετε για να αλλάξετε το μέγεθος της εικόνας είναι να το αλλάξετε το μέγεθος. Ο παρακάτω κώδικας μετατρέπει την εικόνα σε ένα συγκεκριμένο μέγεθος για ανάλυση:
plt. (9)>
Η έξοδος από το σύμβολο
εκτυπώνεται ("τύπος δεδομένων:% s, σχήμα:% s" η λειτουργία print ()
σας ενημερώνει ότι η εικόνα έχει τώρα μέγεθος 30 pixels με 30 pixels. Μπορείτε να το συγκρίνετε με οποιαδήποτε εικόνα με τις ίδιες διαστάσεις.
Αφού έχετε όλες τις εικόνες στο σωστό μέγεθος, θα πρέπει να τις ισιώσετε. Μια σειρά συνόλων δεδομένων είναι πάντα μια μόνο διάσταση, όχι δύο διαστάσεις. Η εικόνα αυτή τη στιγμή είναι ένας πίνακας 30 pixels με 30 pixels, οπότε δεν μπορείτε να την κάνετε μέρος ενός συνόλου δεδομένων. Ο παρακάτω κώδικας ισοπεδώνει
image3
έτσι ώστε να γίνει μια συστοιχία 900 στοιχείων που είναι αποθηκευμένα σε
image_row
:
image_row = image3. { print ("τύπος δεδομένων:% s, σχήμα:% s"%
) (
ndarray
. Μπορείτε να προσθέσετε αυτόν τον πίνακα σε ένα σύνολο δεδομένων και στη συνέχεια να χρησιμοποιήσετε το σύνολο δεδομένων για σκοπούς ανάλυσης. Το μέγεθος είναι 900 στοιχεία, όπως αναμενόταν.