‫好吧, 我会的
‫现在我们已经看到了几种不同的操作数组的方法, 但我们使用的大多数方法都是算术或聚合｡
‫所以就像是在计算裁判的加注｡
‫现在, 如果您需要更改numpy数组的形状, 该怎么办？
‫你为什么要改变裁判的形状, 雷？
‫记住, 很多机器学习都是将你的输入输入到机器学习算法中,
‫并确保它们得到正确的输出｡
‫排列输入的方法之一就是确保你的数据或者你的数字列表或者你的数字数组是正确的｡
‫让我们来看看如何在NumPy中做到这一点｡
‫所以我们要重新塑造和移调｡
‫这是这一部分｡
‫不错的小标题｡
‫让我们来看看｡
‫数组｡
‫真漂亮｡
‫我们来看看它是什么形状｡
‫2乘3｡
‫是啊, 有道理｡
‫现在, 请记住, 之前, 在之前的视频中, 我们尝试用2乘以3｡
‫让我们想象一个3, 这样我们就可以再次看到它｡
‫一个三｡
‫我们走吧｡
‫我们来看看形状｡
‫三点形状｡
‫好吧, 我会的
‫如果我们把这些相乘会发生什么？
‫啊, 操作数不能与形状一起广播｡
‫二, 三或二, 三, 三｡
‫好吧, 我知道了
‫numpy数组的美妙之处在于, 它们可以被重新整形或转置｡
‫让我们先来看看Reshape｡
‫那么Reshape是做什么的呢？
‫Reshape是一个可以在任何数组上调用的方法｡
‫所以如果我们在这里输入｡
‫改变Shift选项卡的形状｡
‫调整文档字符串形状
‫返回一个数组, 其中包含与新形状相同的数据｡
‫真漂亮｡
‫我们走吧｡
‫在那里获取更多信息｡
‫但让我们看看它需要什么｡
‫形｡
‫嗯嗯嗯
‫广播的规则之一, 如果我们再看一遍广播｡
‫广播的规则之一｡
‫就在这里｡
‫一般广播规则当操作两个数组时, numpy会逐个元素地比较它们的形状｡
‫它从结尾尺寸开始, 并向前延伸｡
‫当两个维度相等或其中一个维度为1时, 这两个维度是相容的｡
‫这意味着如果两个数组的形状相等, 乘法就可以发生｡
‫但如果它们不相等, 其中一个必须是一个｡
‫这就是我们要做的｡
‫我们要把A的形状改成数组｡
‫从它的形状来看有三个｡
‫此处不兼容｡
‫我们要改变其中一个维度｡
‫实际上, 我们要添加一个维度｡
‫所以重塑二, 三, 一｡
‫看看会发生什么｡
‫啊, 你好
‫好吧, 我们的思路有点混乱｡
‫让我们在这里打印图形｡
‫所以你可以看到我们的方法, 我们已经使用了重塑方法, 过去在不同的形状｡
‫所以现在我们在这里增加了另一个维度, 现在它的形状是2, 3, 1｡
‫我们会检查一个三形｡
‫好吧, 我会的
‫二三三
‫所以如果我们回到广播的规则｡
‫尺寸是否相等？
‫不, 不, 不
‫其中一个是一个吗？
‫是的, 我知道
‫我们来试试这个｡
‫一个二会使一个变项A重新整形等于一个变项A重新整形｡
‫二三一
‫真漂亮｡
‫我们来看看这个｡
‫要重新造型的｡
‫这是我们的重塑A2, A2重塑时代A3｡
‫我们走吧｡
‫真漂亮｡
‫所以这就是重塑的好处｡
‫现在, 这只是一个小例子｡
‫之前它们是不相容的, 但是因为我们重新塑造了它, 我们重新塑造了一个to, 使之符合numpy的广播规则｡
‫然后, 我们可以在这两个数组上使用乘法函数｡
‫现在, 如果这个概念开始有点奇怪, 那也没关系｡
‫这将需要相当多的练习才能弄清楚如何正确地使用重塑｡
‫但重要的是, 仅仅因为你是一个裁判, 雷有一定的形状,
‫就像它这样开始并不意味着它必须保持在那个形状｡
‫因此, A2的这个重塑版本仍然包含与原始A2相同的信息｡
‫只是形状不同而已｡
‫所以这是你在很多不同的机器学习问题中会遇到的问题之一, 就是确保你试图寻找模式的数据是相同的形状｡
‫所以机器学习算法可以像这个广播操作一样尽快地运行它｡
‫如果它们的形状不一样, 你经常会得到这样的错误, 这意味着你试图寻找模式的数据的形状不一样｡
‫所以这时候你必须弄清楚如何使用像Reshape这样的东西来把它们变成相同的形状, 这样它们就可以互相兼容了｡
‫现在还有一个东西是转置｡
‫什么是转置？
‫我们先来看看｡
‫让我们在这里写一点评论, 这样我们就知道发生了什么｡
‫把a转置为, 实际上我们可以把它留在这里, A到T, 这样我们就可以看到这里发生了什么变化｡
‫让我们从A到Z做两个备份｡
‫调换已更改的内容｡
‫我们去塑造｡
‫三个｡
‫两个｡
‫好吧, 我会的
‫现在, 如果我们走到这里｡
‫八对身形｡
‫所以转置是怎么做的｡
‫它会切换轴｡
‫所以现在一个二的形状是两个三｡
‫但是如果我们调用转置, 现在T是四转置, 它会交换坐标轴｡
‫这就是我们可以看到的｡
‫现在, 1到3｡ 3在这一列下面还有4 5 6｡ 5在此列上｡
‫所以它所做的实际上就是交换行和列｡
‫现在, 您也可以在更大的阵列上执行此操作｡
‫我们来看a3a3的点形状, 二, 三, 三｡
‫所以如果我们调用a3t｡
‫它会交换这些轴｡
‫让我们来看看, 一个三点的形状｡
‫所以现在我们基本上把它翻转过来了｡
‫所以现在这个维度, 也是在最后, 3和3交换到前面｡
‫转置和重塑之间的重要区别在于, 转置只是将轴翻转并重塑｡
‫您可以创建自己的自定义形状｡
‫例如, 我们将A重新定义为, 以与广播规则兼容｡
‫因此, 请练习重新调整一些阵列, 我们将在下一个视频中再见｡