Menu
CoddyTech

形状和大小

本课属于 Coddy Machine Learning 学习旅程的“数据与图表”单元。第 6 课,共 60 课。

机器学习数据是一张表:每个样本占一行,每个特征占一列。列表的列表可以构成一个二维数组:

scores = np.array([[8, 6, 9, 7],
                   [7, 10, 5, 8]])

scores 数组以网格形式绘制,包含 2 行和 4 列数字,标题为 scores.shape is (2, 4)

数组知道自己的大小。不需要括号:这些是存储的信息,不是函数。

print(scores.shape)  # 行数、列数
print(scores.ndim)   # 维度数
print(scores.size)   # 值的数量
print(scores.dtype)  # 值的数据类型

此处会输出:

(2, 4)
2
8
int64

使用任何新数据时,先检查形状:模型要求每个样本占一行。

challenge icon

挑战

简单

只有布局匹配时,两家电影院才能合并票务表。Park 的票数在 rows 中,Plaza 的票数在 plaza 中。

  1. 将 rows 转换为数组 park。
  2. 按 Park、Plaza 的顺序,打印每家电影院的天数、场次和票数。
  3. 打印 Same layout:,以及 True 或 False。

对于 2 天、每天 3 场的情况(48、112、65,然后是 37、98、120):

Park: 2 days, 3 showings a day, 6 values
Plaza: 7 days, 4 showings a day, 28 values
Same layout: False

亲手试试

import numpy as np

# Park 电影院的售票数量:每天一行,每场放映一个值
days = int(input())
showings = int(input())
rows = []
for day in range(days):
    row = []
    for showing in range(showings):
        row.append(int(input()))
    rows.append(row)

# Plaza 电影院的售票数量:每天一行,每场放映一个值
plaza = np.array([
    [34, 58, 91, 40],
    [29, 63, 85, 37],
    [41, 70, 96, 52],
    [38, 66, 102, 47],
    [55, 88, 120, 74],
    [72, 95, 131, 80],
    [60, 81, 99, 45],
])

# 在下方编写你的代码
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

数据与图表中的所有课

自己练习: Python 在线编译器