6-4学习小结

文章讨论了在Python的NumPy库中,如何处理不同形状的数组进行运算的广播机制,特别是当轴长度为1或者存在缺失维度时。它强调了在创建数组时应确保其为列向量或行向量,以避免潜在问题。此外,解释了reshape函数中的-1参数用于在不完全知道数组形状时动态计算未知维度的大小,以及如何使用此功能进行矩阵扁平化处理。
摘要由CSDN通过智能技术生成

广播机制:

如果两个数组的后缘维度的轴长度相符或其中一方的轴长度为 1,则认为它们是广播兼 容的。广播会在缺失维度和轴长度为 1 的维度上进行。

每次创建数组时,都得让他成为列(n x 1维矩阵)/行向量,否则会出现奇奇怪怪的bug,不要让一维数组参与运算。x.reshape(5,1)

疑问点:X_flatten = X.reshape(X.shape[0], -1).T  (矩阵扁平化处理)

# 将一个维度为(a,b,c,d)的矩阵转换为一个维度为(b∗c∗d, a)的矩阵
# A trick when you want to flatten a matrix X of shape (a,b,c,d) to a matrix X_flatten of shape (b ∗∗ c ∗∗ d, a) is to use:
X.reshape(X.shape[0], -1).T

解决一个问题:reshape中的参数   -1  
参数-1就是不知道行数或者列数多少的情况下使用的参数,所以先确定除了参数-1之外的其他参数,然后通过(总参数的计算) / (确定除了参数-1之外的其他参数) = 该位置应该是多少的参数。

对于一个已知的多维数组,你想改变它的形状,你可以选择直接根据已知元素数量确定好各个维度大小,这个-1无非是偷了个懒(个人理解,这个-1就是在不知元素个数时派上用场),当你确定好其它维度的硬性要求,计算机根据元素个数一除,就知道-1这个地方的值了。

学到第一门课第四周

编程作业写道第二周的第二个作业 写了一半。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值