配列の形状変更
CoddyのMachine Learningジャーニー「データとプロット」セクションの一部。レッスン 16/60。
ある店の12か月分の売上は、1つのフラットな配列として届きます。これを3か月ずつの4つの四半期にまとめると、新たな疑問が生まれます。
.reshape(rows, columns)は行を順番に埋めます:
months = np.array([5, 8, 6, 9, 12, 10, 14, 15, 11, 7, 6, 9])
quarters = months.reshape(4, 3)
print(quarters.sum(axis=1))
print(months.reshape(2, -1).shape)これは次のように出力します:
[19 31 40 22]
(2, 6)サイズの積は要素数と一致しなければなりません。4 掛ける 3 は 12 です。片方のサイズに -1 と書けば、NumPy が計算してくれます。
.flatten() は、どのようなテーブルも1つのフラットな配列に戻します。この章は、同じようにラウンドに分けたサイコロゲームで締めくくります。
チャレンジ
簡単ある読者が、月曜日から日曜日までの読書時間(分)を3週間分、一次元配列 minutes に記録しました。プログラムは週番号 week(1、2、または3)を読み取ります。
minutesを、1週間につき1行のweeksに形状変更します。Weeks:を出力し、その後に表を出力します。- 各週の合計を出力します。
- 選択した週の行を出力します。
2週間分の記録があり、入力が 2 の場合:
Weeks:
[[10 0 25 30 15 45 20]
[ 5 35 40 0 20 60 30]]
Weekly totals: [145 190]
Week 2: [ 5 35 40 0 20 60 30]自分で試してみよう
import numpy as np
# 3週間の各日、月曜日から日曜日までの読書時間(分)
minutes = np.array([20, 35, 15, 0, 40, 60, 45, 25, 30, 20, 10, 35, 50, 55,
30, 30, 25, 20, 45, 40, 70])
week = int(input())
# 以下にコードを書いてください
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
データとプロットのすべてのレッスン
自分で練習してみよう: Pythonオンラインコンパイラ