原型为reshape()
就是它reshape(shape, order="C")
,形状的类型是元组。
所以我们应该用以下方式调用这个函数myarray.reshape((1000, 1, 32, 32))
,但是我发现很多人用myarray.reshape(1000, 1, 32, 32)
, why?
这是内置的一点隐藏的灵活性reshape
method.
这里的关键字需要明确:你can't例如:
myarray.reshape(1000, 1, 32, 32, "C")
你会得到一个TypeError
,表示需要一个整数。
(事实上,即使使用元组:
myarray.reshape((1000, 1, 32, 32), "C")
提出了TypeError
.)
如果您查看源代码(例如,在GitHub https://github.com/numpy/numpy/blob/945c308e96fb815729e8f8aeb0ad6b39b8bdf84a/numpy/core/src/multiarray/methods.c#L171,您会看到,在解析关键字后,会检查 0 或 1 个参数。在这种情况下,参数被解释为元组。如果有更多参数,则每个参数都被解释为整数并组合成一个元组作为新形状(关键字参数已被取出)。
至于你应该使用哪一个:我想没有一个很好的答案。
您可以坚持使用文档并使用元组。
然而,多整数参数约定感觉相当明显。
请务必遵守您或您正在从事的项目所使用的约定。不要在同一项目中使用元组和单个整数参数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)