重塑数组
本课属于 Coddy Machine Learning 学习旅程的“数据与图表”单元。第 16 课,共 60 课。
一家商店 12 个月的销售额以一个一维数组的形式排列。将它们折叠成 4 个季度,每个季度 3 个月,就能提出新的问题:
.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() 可以把任意表格还原成一个扁平数组。本章最后会用同样的方法,把一个骰子游戏分成几轮。
挑战
简单一位读者记录了 3 周内每天(周一到周日)的阅读分钟数,并将数据存储在一维数组 minutes 中。程序会读取一个 week 数字:1、2 或 3。
- 将
minutes重塑为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 在线编译器