我试图理解numpy.resize
和numpy.reshape
之间的区别。我知道resize
将返回一个新数组,reshape
将维护相同的底层数据,并且只调整大小(我假设它通过改变步长来实现这一点)。但是,对于这两个函数,我希望能够使用-1
语法来指定轴的大小。然而,这似乎只适用于reshape
。例如,尝试将此一维形状数组(444,)
重塑为形状数组(4, 111)
会产生两种不同的结果,具体取决于您是使用resize
还是reshape
:
import numpy as np
test = np.arange(0, 444)
print(test.shape)
print(np.resize(test, (4, -1)).shape)
print(np.reshape(test, (4, -1)).shape)
印刷品
(444,)
(4, 110)
(4, 111)
我假设我遗漏了resize
函数的某些内容,但我希望它要么输出与(444,)
兼容的形状,要么抛出一个错误。你知道吗
浏览^{} 的源代码,您可以看到发生了什么,而且
-1
从来没有打算作为输入:np.resize
与-1
的行为没有文档记录。但可以从Python代码或以下示例中推断:所以一般来说
也就是说,它通过
m
元素剪辑输入,并尝试reshape
。不是很有用吧?你知道吗在你的情况下
test[:-4].reshape(4,-1)
。你知道吗相关问题 更多 >
编程相关推荐