在代码中经常能看到reshape((1, -1))或者reshape((-1, 1))的用法,这里予以记录,如有错误还请大佬指正。
reshape
函数用于改变数组或系列的形状。当使用-1
作为参数时,它是一种灵活的方式来告诉函数自动帮助计算出应该有的行数或列数,以保持数组元素总数不变。
1. reshape((-1, 1))
当使用reshape((-1, 1))
时,你是在告诉函数你想把数组重塑为只有一列的二维数组,而行数由系统根据原始数组的元素数量自动计算得出。这意味着,无论原始数组的形状如何,重塑后都会变成多行一列的形式。
举个例子:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
reshaped_arr = arr.reshape((-1, 1))
在这个例子中,arr
是一个有5个元素的一维数组。重塑后,reshaped_arr
会变成一个形状为(5, 1)
的二维数组,结果即:
[[1],
[2],
[3],
[4],
[5]]
2.reshape((1, -1))
相反,当你使用reshape((1, -1))
时,数组就重塑为只有一行,其中列数由系统根据原始数组的元素数量自动确定。这样,所有原始数据会被排列在同一行中。
继续上面的例子,可以看到生成了一个一行的二维数组:
reshaped_arr = arr.reshape((1, -1))
[[1, 2, 3, 4, 5]]
3.总结
总结来说,-1
作为一个占位符,允许你在不知道确切的行数或列数时,仍然能够调整数组的形状。