機械学習の勉強のため、オライリー社出版の「データサイエンスハンドブック」を写経しています。
質問(依頼)事項
「5.10.1 多様体学習:HELLO」 にあるコードが理解できません。
質問として乱暴なのは承知ですが、どなたか解説いただけないでしょうか。
該当コード
分からないのは、関数make_hello中の、"data = imread"から"return"までです。
X * data.shapeなんて、shapeが全然違うのでなぜ掛けられるか判りません。
他も何をやっているのか具体的につかめません。
python3
1%matplotlib inline 2import numpy as np 3import matplotlib.pyplot as plt 4import seaborn as sns; sns.set() 5from matplotlib.image import imread 6 7def make_hello(N=1000, rseed=42): 8 fig, ax = plt.subplots(figsize=(4, 1)) 9 fig.subplots_adjust(left=0, right=1, bottom=0, top=1) 10 ax.axis('off') 11 ax.text(0.5, 0.4, 'HELLO', va='center', ha='center', weight='bold', size=85) 12 fig.savefig('hello.png') 13 plt.close(fig) 14 15 data = imread('hello.png')[::-1, :, 0].T 16 rng = np.random.RandomState(rseed) 17 X = rng.rand(4 * N, 2) 18 i, j = (X * data.shape).astype(int).T 19 mask = (data[i, j] < 1) 20 X = X[mask] 21 X[:, 0] *= (data.shape[0] / data.shape[1]) 22 X = X[:N] 23 return X[np.argsort(X[:, 0])] 24 25X = make_hello(1000) 26colorize = dict(c=X[:, 0], cmap=plt.cm.get_cmap('rainbow', 5)) 27plt.scatter(X[:, 0], X[:, 1], **colorize) 28plt.axis('equal');
(参考)コードの実行結果
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/13 06:55
2019/11/13 07:04
2019/11/13 07:05
2019/11/13 07:08 編集
2019/11/13 07:27