Machine Learning with Python Cookbook, 2nd Edition Kyle Gallatin pdf download
Machine Learning with Python Cookbook, 2nd Edition Kyle Gallatin pdf download
https://ebookmeta.com/product/machine-learning-with-python-
cookbook-2nd-edition-kyle-gallatin/
With Early Release ebooks, you get books in their earliest form—the author’s
raw and unedited content as they write—so you can take advantage of these
technologies long before the official release of these titles.
When the 1st edition of this book was published in 2018, it filled a
critical gap in the growing wealth machine learning (ML) content. By
providing well-tested, hands-on Python recipes, it practitioners to
copy and paste code before easily adapting it to their use cases. In a
short 5 years, the ML space has only continued to explode with
advances in deep learning (DL) and the associated DL Python
frameworks.
Now, in 2023, there is a need for the same sort of hands-on content
that services the needs of both ML and DL practitioners with the
latest Python libraries. This book intends to build on the existing
(and fantastic) work done by the author of the 1st edition by:
Updating existing examples to use the latest Python versions and
frameworks
Incorporating modern practices in data sources, data analysis,
ML, and DL
Expanding the DL content to include tensors, neural networks,
and DL for text and vision in PyTorch
Taking our models one step further by serving them in an API
Like the 1st edition, this book takes a task-based approach to
machine learning, boasting over 200 self-contained solutions (copy,
paste and run) for the most common tasks a data scientist or
machine learning engineer building a model will run into.
NOTE
This element signifies a general note.
WARNING
This element indicates a warning or caution.
NOTE
For more than 40 years, O’Reilly Media has provided technology and
business training, knowledge, and insight to help companies succeed.
How to Contact Us
Please address comments and questions concerning this book to the
publisher:
O’Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
800-889-8969 (in the United States or Canada)
707-829-7019 (international or local)
707-829-0104 (fax)
support@oreilly.com
https://www.oreilly.com/about/contact.html
We have a web page for this book, where we list errata, examples,
and any additional information. You can access this page at
https://oreil.ly/ml_python_2e.
For news and information about our books and courses, visit
https://oreilly.com.
Find us on LinkedIn: https://linkedin.com/company/oreilly-media
Follow us on Twitter: https://twitter.com/oreillymedia
Watch us on YouTube: https://youtube.com/oreillymedia
Acknowledgments
The 2nd edition of this book is clearly only possible because of the
fantastic content, structure, and quality laid out in the 1st edition by
original author Chris Albon. As the 1st author of the 2nd edition, I
cannot understate the degree to which this made my job way, way
easier. Of course, the machine learning (ML) space also evolves
rapidly, and the updates included in this 2nd edition could not have
been written without the thoughtful feedback of my peers. I’d
specifically like to thank my fellow Etsy coworkers Andrea Heyman,
Maria Gomez, Alek Maelstrum and Brian Schmidt for acquiescing to
requests for input on various chapters, and being unwillingly coaxed
into sudden brainstorming sessions that shaped the new content
added to this 2nd edition. I’d also like to thank the technical
reviewers—Jigyasa Grover, Matteus Tanha, and Ganesh Harke --
along with the O’Reilly Editors: Jeff Bleiel, Nicole Butterfield, and
Clare Laylock. That being said, the number of people who’ve helped
me and this book get to the place it’s at (in one way or another) is
massive. I’d love to thank everyone who’s been a part of my ML
journey in one way or another, and helped make this book what it is.
Love y’all.
Chapter 1. Working with
Vectors, Matrices and Arrays
in NumPy
1.0 Introduction
NumPy is a foundational tool of the Python machine learning stack.
NumPy allows for efficient operations on the data structures often
used in machine learning: vectors, matrices, and tensors. While
NumPy is not the focus of this book, it will show up frequently
throughout the following chapters. This chapter covers the most
common NumPy operations we are likely to run into while working
on machine learning workflows.
Problem
You need to create a vector.
Solution
Use NumPy to create a one-dimensional array:
# Load library
import numpy as np
Discussion
NumPy’s main data structure is the multidimensional array. A vector
is just an array with a single dimension. In order to create a vector,
we simply create a one-dimensional array. Just like vectors, these
arrays can be represented horizontally (i.e., rows) or vertically (i.e.,
columns).
See Also
Vectors, Math Is Fun
Euclidean vector, Wikipedia
Problem
You need to create a matrix.
Solution
Use NumPy to create a two-dimensional array:
# Load library
import numpy as np
# Create a matrix
matrix = np.array([[1, 2],
[1, 2],
[1, 2]])
Discussion
To create a matrix we can use a NumPy two-dimensional array. In
our solution, the matrix contains three rows and two columns (a
column of 1s and a column of 2s).
NumPy actually has a dedicated matrix data structure:
matrix([[1, 2],
[1, 2],
[1, 2]])
See Also
Matrix, Wikipedia
Matrix, Wolfram MathWorld
1.3 Creating a Sparse Matrix
Problem
Given data with very few nonzero values, you want to efficiently
represent it.
Solution
Create a sparse matrix:
# Load libraries
import numpy as np
from scipy import sparse
# Create a matrix
matrix = np.array([[0, 0],
[0, 1],
[3, 0]])
Discussion
A frequent situation in machine learning is having a huge amount of
data; however, most of the elements in the data are zeros. For
example, imagine a matrix where the columns are every movie on
Netflix, the rows are every Netflix user, and the values are how many
times a user has watched that particular movie. This matrix would
have tens of thousands of columns and millions of rows! However,
since most users do not watch most movies, the vast majority of
elements would be zero.
A sparse matrix is a matrix in which most elements are 0. Sparse
matrices only store nonzero elements and assume all other values
will be zero, leading to significant computational savings. In our
solution, we created a NumPy array with two nonzero values, then
converted it into a sparse matrix. If we view the sparse matrix we
can see that only the nonzero values are stored:
(1, 1) 1
(2, 0) 3
(1, 1) 1
(2, 0) 3
(1, 1) 1
(2, 0) 3
As we can see, despite the fact that we added many more zero
elements in the larger matrix, its sparse representation is exactly the
same as our original sparse matrix. That is, the addition of zero
elements did not change the size of the sparse matrix.
As mentioned, there are many different types of sparse matrices,
such as compressed sparse column, list of lists, and dictionary of
keys. While an explanation of the different types and their
implications is outside the scope of this book, it is worth noting that
while there is no “best” sparse matrix type, there are meaningful
differences between them and we should be conscious about why
we are choosing one type over another.
See Also
Sparse matrices, SciPy documentation
101 Ways to Store a Sparse Matrix
Problem
You need to pre-allocate arrays of a given size with some value.
Solution
NumPy has functions for generating vectors and matrices of any size
using 0s, 1s, or values of your choice.
# Load library
import numpy as np
Language: English
D. Lothrop Company
1888
TO MY GRANDMOTHER
A. L. H.
IN REMEMBRANCE OF OLD
NORWICH DAYS
CONTENTS
CHAPTER I.—THE NEPHEW OF A MARQUIS.
CHAPTER II—I MAKE A FRIEND.
CHAPTER III.—NEW YORK.
CHAPTER IV—AT MR. FINKELSTEIN'S.
CHAPTER V—PRIDE AND A FALL.
CHAPTER VI—MY UNCLE FLORIMOND.
CHAPTER I.—THE NEPHEW OF A
MARQUIS.
B
oth of my parents died while I was still a baby; and I passed
my childhood at the home of my father's mother in Norwich
Town—which lies upon the left bank of the river Yantic, some
three miles to the north of Norwich City, in Eastern Connecticut.
My father's mother, my dear old grandmother, was a French lady
by birth; and her maiden name had been quite an imposing one—
Aurore Aline Raymonde Marie Antoinette de la Bourbonnaye. But in
1820, when she was nineteen years old, my grandfather had
persuaded her to change it for plain and simple Mrs. Brace; from
which it would seem that my grandfather must have been a
remarkably persuasive man. At that time she lived in Paris with her
father and mother, who were very lofty, aristocratic people—the
Marquis and Marquise de la Bourbonnaye. But after her marriage
she followed her husband across the ocean to his home in
Connecticut, where in 1835 he died, and where she had remained
ever since. She had had two children: my father, Edward, whom the
rebels shot at the Battle of Bull Run in July, 1861, and my father's
elder brother, my Uncle Peter, who had never married, and who was
the man of our house in Norwich.
The neighbors called my Uncle Peter Square, because he was a
lawyer. Some of them called him Jedge, because he had once been a
Justice of the Peace. Between him and me no love was lost. A stern,
cold, frowning man, tall and dark, with straight black hair, a lean,
smooth-shaven face, thin lips, hard black eyes, and bushy black
eyebrows that grew together over his nose making him look false
and cruel, he inspired in me an exceeding awe, and not one atom of
affection. I was indeed so afraid of him that at the mere sound of his
voice my heart would sink into my boots, and my whole skin turn
goose-flesh. When I had to pass the door of his room, if he was in, I
always quickened my pace and went on tiptoe, half expecting that
he might dart out and seize upon me; if he was absent, I would stop
and peek in through the keyhole, with the fascinated terror of one
gazing into an ogre's den. And, oh me! what an agony of fear I had
to suffer three times every day, seated at meals with him. If I so
much as spoke a single word, except to answer a question, he would
scowl upon me savagely, and growl out, “Children should be seen
and not heard.” After he had helped my grandmother, he would
demand in the crossest tone you can imagine, “Gregory, do you
want a piece of meat?” Then I would draw a deep breath, clinch my
fists, muster my utmost courage, and, scarcely louder than a
whisper, stammer, “Ye-es, sir, if you p-please.” It would have come
much more easily to say, “No, I thank you, sir,”—only I was so very
hungry. But not once, in all the years I spent at Norwich, not once
did I dare to ask for more. So I often left the table with my appetite
not half satisfied, and would have to visit the kitchen between
meals, and beg a supplementary morsel from Julia, our cook.
Uncle Peter, for his part, took hardly any notice whatever of me,
unless it was to give me a gruff word of command—like “Leave the
room,” “Go to bed,” “Hold your tongue,”—or worse still a scolding, or
worst of all a whipping. For the latter purpose he employed a flexible
rattan cane, with a curiously twisted handle. It buzzed like a hornet
as it flew cutting through the air; and then, when it had reached its
objective point—mercy, how it stung! I fancied that whipping me
afforded him a great deal of enjoyment. Anyhow, he whipped me
very often, and on the very slightest provocation: if I happened to
be a few minutes behindhand at breakfast, for example, or if I did
not have my hair nicely brushed and parted when I appeared at
dinner. And if I cried, he would whip all the harder, saying, “I'll give
you something to cry about,” so that in the end I learned to stand
the most unmerciful flogging with never so much as a tear or a sob.
Instead of crying, I would bite my lips, and drive my fingernails into
the palms of my hands until they bled. Why, one day, I remember, I
was standing in the dining-room, drinking a glass of water, when
suddenly I heard his footstep behind me; and it startled me so that I
let the tumbler drop from my grasp to the floor, where it broke,
spilling the water over the carpet. “You clumsy jackanapes,” he
cried; “come up-stairs with me, and I'll show you how to break
tumblers.” He seized hold of my ear, and, pinching and tugging at it,
led me up-stairs to his room. There he belabored me so vigorously
with that rattan cane of his that I was stiff and lame for two days
afterward. Well, I dare say that sometimes I merited my Uncle
Peter's whippings richly; but I do believe that in the majority of
cases when he whipped me, moral suasion would have answered
quite as well, or even better. “Spare the rod and spoil the child” was
one of his fundamental principles of life.
Happily, however, except at meal hours, my Uncle Peter was
seldom in the house. He had an office at the Landing—that was the
name Norwich City went by in Norwich Town—and thither daily after
breakfast and again after dinner, he betook himself. After supper he
would go out to spend the evening—where or how I never knew,
though I often wondered; but all day Sunday he would stay at
home, shut up in his room; and all day Sunday, therefore, I was
careful to keep as still as a mouse.
He did not in the least take after his mother, my grandmother; for
she, I verily believe, of all sweet and gentle ladies was the sweetest
and the gentlest. It is now more than sixteen years since she died;
yet, as I think of her now, my heart swells, my eyes fill with tears,
and I can see her as vividly before me as though we had parted but
yesterday: a little old body, in a glistening black silk dress, with her
snowy hair drawn in a tall puff upward from her forehead, and her
kind face illuminated by a pair of large blue eyes, as quick and as
bright as any maiden's. She had the whitest, daintiest, tiniest hands
you ever did see; and the tiniest feet. These she had inherited from
her noble French ancestors; and along with them she had also
inherited a delicate Roman nose—or, as it is sometimes called, a
Bourbon nose. Now, as you will recollect, the French word for nose
is nez (pronounced nay); and I remember I often wondered whether
that Bourbon nose of my grandmother's might not have had
something to do with the origin of her family name, Bourbonnaye.
But that, of course, was when I was a very young and foolish child
indeed.
In her youth, I know, my grandmother had been a perfect beauty.
Among the other pictures in our parlor, there hung an oil painting
which represented simply the loveliest young lady that I could fancy.
She had curling golden hair, laughing eyes as blue as the sky, ripe
red lips just made to kiss, faintly blushing cheeks, and a rich, full
throat like a column of ivory; and she wore a marvelous costume of
cream-colored silk, trimmed with lace; and in one hand she-held a
bunch of splendid crimson roses, so well painted that you could
almost smell them. I used to sit before this portrait for hours at a
stretch, and admire the charming girl who smiled upon me from it,
and wonder and wonder who she could be, and where she lived, and
whether I should ever have the good luck to meet her in proper
person. I used to think that perhaps I had already met her
somewhere, and then forgotten; for, though I could not put my
finger on it, there was something strangely familiar to me in her
face. I used to say to myself, “What if after all it should be only a
fancy picture! Oh! I hope, I hope it isn't.” Then at length, one day, it
occurred to me to go to my grandmother for information. Imagine
my surprise when she told me that it was a portrait of herself, taken
shortly before her wedding.
“O, dear! I wish I had been alive in those days,” I sighed.
“Why?” she queried.
“Because then I could have married you,” I explained. At which
she laughed as merrily as though I had got off the funniest joke in
the world, and called me an “enfant terrible”—a dreadful child.
This episode abode in my mind for a long time to come, and
furnished me food for much sorrowful reflection. It brought forcibly
home to me the awful truth, which I had never thought of before,
that youth and beauty cannot last. That this young girl—so strong,
so gay, so full of life, with such bright red lips and brilliant golden
hair—that she could have changed into a feeble gray old lady, like
my grandmother! It was a sad and appalling possibility.
My grandmother stood nearly as much in awe of my Uncle Peter
as I did. He allowed himself to browbeat and bully her in a manner
that made my blood boil. “Oh!” I would think in my soul, “just wait
till I am a man as big as he is. Won't I teach him a lesson, though?”
She and I talked together for the most part in French. This was for
two reasons: first, because it was good practice for me; and
secondly, because it was pleasant for her—French being her native
tongue. Well, my Uncle Peter hated the very sound of French—why I
could not guess, but I suspected it was solely for the sake of being
disagreeable—and if ever a word of that language escaped my
grandmother's lips in his presence, he would glare at her from
beneath his shaggy brows, and snarl out, “Can't you speak English
to the boy?” She never dared to interfere in my behalf when he was
about to whip me—though I knew her heart ached to do so—but
would sit alone in her room during the operation, and wait to
comfort me after it was over. His rattan cane raised great red welts
upon my skin, which smarted and were sore for hours. These she
would rub with a salve that cooled and helped to heal them; and
then, putting her arm about my neck, she would bid me not to mind
it, and not to feel unhappy any more, and would give me
peppermint candies and cookies, and tell me long, interesting
stories, or read aloud to me, or show me the pictures in her big
family Bible. “Paul and Virginia” and “The Arabian Nights” were the
books I liked best to be read to from; and my favorite picture was
one of Daniel iii the lion's den. Ah, my dear, dear grandmother! As I
look back upon those days now, there is no bitterness in my memory
of Uncle Peter's whippings; but my memory of your tender goodness
in consoling me is infinitely sweet.
No; if my Uncle Peter was perhaps a trifle too severe with me, my
grandmother erred in the opposite direction, and did much to spoil
me. I never got a single angry word from her in all the years we
lived together; yet I am sure I must have tried her patience very
frequently and very sorely. Every forenoon, from eight till twelve
o'clock, she gave me my lessons: geography, history, grammar,
arithmetic and music. I was neither a very apt nor a very industrious
pupil in any of these branches; but I was especially dull and
especially lazy in my pursuit of the last. My grandmother would sit
with me at the piano for an hour, and try and try to make me play
my exercise aright; and though I always played it wrong, she never
lost her temper, and never scolded. I deserved worse than a
scolding; I deserved a good sound box on the ear; for I had shirked
my practising, and that was why I blundered so. But the most my
grandmother ever said or did by way of reproof, was to shake her
head sadly at me, and murmur, “Ah, Gregory, Gregory, I fear that
you lack ambition.” So very possibly, after all, my Uncle Peter's
sternness was really good for me as a disagreeable but salutary
tonic.
My Uncle Florimond was my grandmother's only brother,
unmarried, five years older than herself, who lived in France. His full
name was even more imposing than hers had been; and to write it I
shall have to use up nearly all the letters of the alphabet: Florimond
Charles Marie Auguste Alexandre de la Bourbonnaye. As if this were
not enough, he joined to it the title of marquis, which had
descended to him from his father; just think—Florimond Charles
Marie Auguste Alexandre, Marquis de la Bourbonnaye.
Though my grandmother had not once seen her brother Florimond
since her marriage—when she was a blushing miss of nineteen, and
he a dashing young fellow of four-and-twenty—I think she cared
more for him than for anybody else alive, excepting perhaps myself.
And though I had never seen him at all, I am sure that he was to
me, without exception, the most important personage in the whole
wide world. He owed this distinguished place in my regard to several
causes. He owed it partly, no doubt, to the glamour attaching to his
name and title. To my youthful imagination Florimond Charles Marie
Auguste Alexandre de la Bourbonnaye made a strong appeal. Surely,
any one who went through life bearing a name like that must be a
very great and extrordinary man; and the fact that he was my uncle
—my own grandmother's brother—stirred my bosom with pride, and
thrilled it with satisfaction. Then, besides, he was a marquis; and a
marquis, I supposed, of course, must be the embodiment of
everything that was fine and admirable in human nature—good,
strong, rich, brave, brilliant, beautiful—just one peg lower in the
scale of glory than a king. Yes, on account of his name and title
alone, I believe, I should have placed my Uncle Florimond upon a
lofty pedestal in the innermost shrine of my fancy, as a hero to
drape with all the dazzling qualities I could conceive of, to wonder
about, and to worship. But indeed, in this case, I should most likely
have done very much the same thing, even if he had had no other
title than plain Mister, and if his name had been homely John or
James. For my grandmother, who never tired of talking to me of him,
had succeeded in communicating to my heart something of her own
fondness for him, as well as imbuing my mind with an eager interest
in everything that concerned him, and in firing it with a glowing ideal
of his personality. She had taught me that he was in point of fact, all
that I had pictured him in my surmises.
When, in 1820, Aurore de la Bourbonnaye became Mrs. Brace, and
bade good-by to her home and family, her brother Florimond had
held a commission as lieutenant in the King's Guard. A portrait of
him in his lieutenant's uniform hung over the fireplace in our parlor,
directly opposite the portrait of his sister that I have already spoken
of. You never saw a handsomer young soldier: tall, muscular,
perfectly shaped, with close-cropped chestnut hair, frank brown
eyes, and regular clean-cut features, as refined and sensitive as a
woman's, yet full of manly dignity and courage. In one hand he held
his military hat, plumed with a long black ostrich feather; his other
hand rested upon the hilt of his sword.
His uniform was all ablaze with brass buttons and gold lace; and a
beautiful red silk sash swept over his shoulder diagonally downward
to his hip, where it was knotted, and whence its tasseled ends fell
half-way to his knee. Yes, indeed; he was a handsome, dashing,
gallant-looking officer; and you may guess how my grandmother
flattered me when she declared, as she often did, “Gregory, you are
his living image.” Then she would continue in her quaint old-
fashioned French:—“Ah! that thou mayest resemble him in spirit, in
character, also. He is of the most noble, of the most generous, of the
most gentle. An action base, a thought unworthy, a sentiment
dishonorable—it is to him impossible. He is the courage, the
courtesy, the chivalry, itself. Regard, then, his face. Is it not radiant
of his soul? Is it not eloquent of kindness, of fearlessness, of truth?
He is the model, the paragon even, of a gentleman, of a Christian.
Say, then, my Gregory, is it that thou lovest him a little also, thou? Is
it that thou art going to imitate him a little in thy life, and to strive to
become a man as noble, as lovable, as he?”
To which I would respond earnestly in the same language, “O,
yes! I love him, I admire him, with all my heart—after thee, my
grandmother, better than anybody. And if I could become a man like
him, I should be happier than I can say. Anyway, I shall try. He will
be my pattern. But tell me, shall I never see him? Will he never
come to Norwich? I would give—oh! I would give a thousand dollars
—to see him, to embrace him, to speak with him.”
“Alas, no, I fear he will never come to Norwich. He is married to
his France, his Paris. But certainly, when thou art grown up, thou
shalt see him. Thou wilt go to Europe, and present thyself before
him.”
“O, dear! not till I am grown up,” I would complain. “That is so
long to wait.” Yet that came to be a settled hope, a moving purpose,
in my life—that I should sometime meet my Uncle Florimond in
person. I used to indulge my imagination in long, delicious day-
dreams, of which our meeting was the subject, anticipating how he
would receive me, and what we should say and do. I used to try
honestly to be a good boy, so that he would take pleasure in
recognizing me as his nephew. My grandmother's assertion to the
effect that I looked like him filled my heart with gladness, though,
strive as I might, I could not see the resemblance for myself. And if
she never tired of talking to me about him, I never tired of listening,
either. Indeed, to all the story-books in our library I preferred her
anecdotes of Uncle Florimond.
Once a month regularly my grandmother wrote him a long letter;
and once a month regularly a long letter arrived from him for her—
the reception of which marked a great day in our placid, uneventful
calendar. It was my duty to go to the post-office every afternoon, to
fetch the mail. When I got an envelope addressed in his
handwriting, and bearing the French postage-stamp—oh! didn't I
hurry home! I couldn't seem to run fast enough, I was so impatient
to deliver it to her, and to hear her read it aloud. Yet the contents of
Uncle Florimond's epistles were seldom very exciting; and I dare say,
if I should copy one of them here, you would pronounce it quite dull
and prosy. He always began, “Ma sour bien-aimee”—My well-beloved
sister. Then generally he went on to give an account of his goings
and his comings since his last—naming the people whom he had
met, the houses at which he had dined, the plays he had witnessed,
the books he had read—and to inquire tenderly touching his sister's
health, and to bid her kiss his little nephew Gregory for him. He
invariably wound up, “Dieu te garde, ma sour cherie”—God keep
thee, my dearest sister.—“Thy affectionate brother, de la
Bourbonnaye.” That was his signature—de la Bourbonnaye, written
uphill, with a big flourish underneath it—never Florimond. My
grandmother explained to me that in this particular—signing his
family name without his given one—he but followed a custom
prevalent among French noblemen. Well, as I was saying, his letters
for the most part were quite unexciting; yet, nevertheless, I listened
to them with rapt attention, reluctant to lose a single word. This was
for the good and sufficient reason that they came from him—from
my Uncle Florimond—from my hero, the Marquis de la Bourbonnaye.
And after my grandmother had finished reading one of them, I
would ask, “May I look at it, please?” To hold it between my fingers,
and gaze upon it, exerted a vague, delightful fascination over me. To
think that his own hand had touched this paper, had shaped these
characters, less than a fortnight ago! My Uncle Florimond's very
hand! It was wonderful!
I was born on the first of March, 1860; so that on the first of
March, 1870, I became ten years of age. On the morning of that
day, after breakfast, my grandmother called me to her room.
“Thou shalt have a holiday to-day,” she said; “no study, no
lessons. But first, stay.”
She unlocked the lowest drawer of the big old-fashioned bureau-
desk at which she used to write, and took from it something long
and slender, wrapped up in chamois-skin. Then she undid and
peeled off the chamois-skin wrapper, and showed me—what do you
suppose? A beautiful golden-hilted sword, incased in a golden
scabbard!
“Isn't it pretty?” she asked.
“Oh! lovely, superb,” I answered, all admiration and curiosity.
“Guess a little, mon petit, whom it belonged to?” she went on.
“To—oh! to my Uncle Florimond—I am sure,” I exclaimed.
“Right. To thy Uncle Florimond. It was presented to him by the
king, by King Louis XVIII.”
“By the king—by the king!” I repeated wonderingly. “Just think!”
“Precisely. By the king himself, as a reward of valor and a token of
his regard. And when I was married my brother gave it to me as a
keepsake. And now—and now, my Gregory, I am going to give it to
thee as a birthday present.”
“To me! Oh!” I cried. That was the most I could say. I was quite
overcome by my surprise and my delight.