numpy.tile()
numpy.tile(A, reps) はスカラーまたは配列 A タイル状に敷き詰める関数です。reps で A の個数を指定します。
# NUMPY_TILE # In[1] import numpy as np # [0,1]を3個並べる a = np.tile([0, 1], 3) print(a) # [0 1 0 1 0 1]
reps にリスト [a, b] を渡すと、配列を縦に a 個、横に b 個並べます。
# In[2] # [0,1]を縦に3個、横に2個並べる b = np.tile([0, 1], [3, 2]) print(b) # [[0 1 0 1] # [0 1 0 1] # [0 1 0 1]]
第 1 引数 A に 2 次元配列を渡すこともできます。
# In[3] # 2次元配列を定義 x = np.array([[1, 2], [3, 4]]) # xを横に3個並べる c = np.tile(x, 3) print(c) # [[1 2 1 2 1 2] # [3 4 3 4 3 4]]
2 次元配列を縦横に並べるコードです。
# In[4] # xを縦に2個、横に3個並べる d = np.tile(x, [2, 3]) print(d) # [[1 2 1 2 1 2] # [3 4 3 4 3 4] # [1 2 1 2 1 2] # [3 4 3 4 3 4]]
numpy.tile() を会話形式で説明します
今、世間で大流行している ChatGPT に numpy.tile() について、会話形式で説明してもらいました。
生徒: 講師さん、NumPyのtile関数について教えていただけますか? tile 関数はどのような役割を持っているんでしょうか?
講師: もちろんです! tile 関数は、NumPy 配列の要素を繰り返し複製するための関数です。繰り返しパターンを指定して、元の配列の要素をタイリング(繰り返し配置)することができます。
生徒: なるほど、要素を繰り返し配置するための関数なんですね。具体的な使い方を教えていただけますか?
講師: もちろんです。tile 関数は、2つの引数を受け取ります。1つ目の引数は繰り返す元の配列(タイルする配列)であり、2つ目の引数は繰り返し回数やパターンを指定するためのタプルや整数です。
import numpy as np # 元の配列を作成 array = np.array([1, 2, 3]) # 配列を2回繰り返してタイルする tiled_array = np.tile(array, 2) print("タイルされた配列:", tiled_array)
この例では、array という配列が[1, 2, 3]という要素で構成されています。np.tile 関数を使って、この配列を2回繰り返してタイルした新しい配列tiled_array が作成されます。
生徒: なるほど、結果はどうなるんですか?
講師: 結果として、tiled_array が作成されます。tiled_array を出力すると、[1, 2, 3, 1, 2, 3] という配列が得られます。元の配列が2回繰り返されていることがわかります。
コメント
【技術英語の豆知識】tile はつまるところ「タイル」です
tile を英英辞典で調べてみると、「壁や床を覆うために使用される、焼き粘土または他の材料でできた平らな正方形状の部品」みたいなことが英語で書いてありました。まあ、タイルはタイルですね。日本では浴室に敷き詰められていたりしますが … よく考えると私の家の浴室はタイルではありませんでした。身近なようで、案外タイルと無縁な生活を送っている人も多いかもしれません。それはともかくとして、今回紹介した関数 numpy.tile()、配列の並べ方をタイルにたとえるなんて、なかなか面白いネーミングセンスですよね。
読書しながら IT 分野で使われそうな英語を拾い集めてみました。
・integrate systems:システムを構築する
※この場合の integrate は「積分」ではないので注意。
・employment of numerical computations:数値計算の利用
・portable to all platforms:すべてのプラットフォームに移植可能な
※portable は「携帯できる、どこにでも持ち運べる」の意。Python は Windows, Mac, LINUX … どこでも使える。だから Python はとっても portable.
・key to fostering cooperation:共同作業を促進するカギ
※動詞の foster は「育てる、養育する」の意。目的語が抽象名詞なら「促進する」となる。
・discretion of the sellar:売り手の裁量