的原型reshape()是那个reshape(shape, order="C"),形状的类型是元组。所以我们应该用 来调用这个函数myarray.reshape((1000, 1, 32, 32)),但是我发现很多用myarray.reshape(1000, 1, 32, 32),为什么?
小智 5
这是该reshape方法内置的一些隐藏的灵活性。
这里的关键字需要明确:你不能这样做,例如:
myarray.reshape(1000, 1, 32, 32, "C")
Run Code Online (Sandbox Code Playgroud)
你会得到一个TypeError,表示需要一个整数。
(事实上,即使使用元组:
myarray.reshape((1000, 1, 32, 32), "C")
Run Code Online (Sandbox Code Playgroud)
提高TypeError.)
如果您查看源代码(例如,在GitHub 上,您会看到,在解析关键字后,会检查 0 或 1 个参数。在这种情况下,该参数被解释为一个元组。如果有更多的参数,每个都被解释为一个整数并组合成一个元组作为新的形状(关键字参数已经被取出)。
至于你应该使用哪一个:我想没有一个很好的答案。
您可以坚持使用文档,并使用元组。
然而,多整数参数约定感觉相当明显。
请坚持您或您正在从事的项目使用的约定。不要在同一个项目中使用元组和单个整数参数。
| 归档时间: |
|
| 查看次数: |
428 次 |
| 最近记录: |