合并数组
本课属于 Coddy Machine Learning 学习旅程的“数据与图表”单元。第 17 课,共 60 课。
博物馆统计了三个早晨的访客人数,然后统计了两个晚上。np.concatenate 会将数组首尾相连:
代码:
morning = np.array([12, 15, 19])
evening = np.array([20, 18])
print(np.concatenate([morning, evening]))这会打印 [12 15 19 20 18]。模型需要的是另一种形式:每个样本占一行,每个特征占一列。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 组。一位同事的代码运行时报错,修复错误后,表格结果仍然不正确。
修复构建 ages、hours 和 table 的三行代码。最后两行保持不变。
对于一项包含 3 人的小型研究,修复后的程序会打印:
[[30 5]
[28 8]
[62 2]]
People: 3, measurements each: 2亲手试试
import numpy as np
# 第一组:每个人的年龄,以及每天使用屏幕的时长(以小时为单位)
ages_1 = np.array([23, 35, 41])
hours_1 = np.array([6, 4, 3])
# 第二组
ages_2 = np.array([19, 52])
hours_2 = np.array([7, 2])
# 这项研究要求每人占一行:先是年龄,再是使用屏幕的小时数。请修正下面的代码行
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 在线编译器