配列の結合
CoddyのMachine Learningジャーニー「データとプロット」セクションの一部。レッスン 17/60。
ある博物館では、3日間の午前と、その後2日間の夕方に来館者数を数えました。np.concatenateは配列を端と端でつなげます。
コード:
morning = np.array([12, 15, 19])
evening = np.array([20, 18])
print(np.concatenate([morning, evening]))これは [12 15 19 20 18] を出力します。モデルでは別の形式が必要です。サンプルごとに1行、特徴量ごとに1列です。np.column_stack は配列を横に並べて列にします:
コードでは:
sizes = np.array([45, 60, 82])
rents = np.array([900, 1200, 1500])
table = np.column_stack([sizes, rents])
print(table.shape)これは(3, 2)を出力します。各行はすべての配列から値を1つずつ取るため、それらの長さは一致している必要があります。
チャレンジ
簡単ある調査では、1つの人物データ表が必要です。1列目に年齢、2列目に1日のスクリーン使用時間を入れ、グループ1を先にします。同僚のコードはエラーで停止し、それを修正しても表はまだ正しく出力されません。
ages、hours、tableを作成する3行を修正してください。最後の2行はそのままにしてください。
3人を対象とした小規模な調査では、修正したプログラムは次のように出力します。
[[30 5]
[28 8]
[62 2]]
People: 3, measurements each: 2自分で試してみよう
import numpy as np
# 最初のグループ:各人の年齢と、1日あたりの画面使用時間(時間単位)
ages_1 = np.array([23, 35, 41])
hours_1 = np.array([6, 4, 3])
# 2番目のグループ
ages_2 = np.array([19, 52])
hours_2 = np.array([7, 2])
# この調査では、1人につき1行が必要です。年齢、次に時間の順に並べてください。以下の行を修正してください
ages = np.concatenate([ages_1, ages_2])
hours = np.concatenate(hours_1, hours_2)
table = np.concatenate([ages, hours])
# 以下の行は変更しないでください
print(table)
print(f"People: {table.shape[0]}, measurements each: {table.shape[1]}")
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
データとプロットのすべてのレッスン
自分で練習してみよう: Pythonオンラインコンパイラ