Menu
CoddyTech

配列の結合

CoddyのMachine Learningジャーニー「データとプロット」セクションの一部。レッスン 17/60。

ある博物館では、3日間の午前と、その後2日間の夕方に来館者数を数えました。np.concatenateは配列を端と端でつなげます。

1行に並んだ5つのセル:午前の来館者数12、15、19に続いて、夕方の来館者数20、18

コード:

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 は配列を横に並べて列にします:

2列に3件のアパートを並べた表:サイズ45、60、82と、それぞれの隣に家賃900、1200、1500。1行につき1件のアパート

コードでは:

sizes = np.array([45, 60, 82])
rents = np.array([900, 1200, 1500])
table = np.column_stack([sizes, rents])
print(table.shape)

これは(3, 2)を出力します。各行はすべての配列から値を1つずつ取るため、それらの長さは一致している必要があります。

challenge icon

チャレンジ

簡単

ある調査では、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]}")
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

データとプロットのすべてのレッスン

自分で練習してみよう: Pythonオンラインコンパイラ