np.resize() 和 np.reshape()
1、当存在某个参数为 -1 时,
import numpy as np
a = np.arange(12)
b = np.resize(a,(-1,6))#自动推导缺省的维度数目并减去1
print("b shape: ",b.shape)
print(b)
c = a.reshape(-1,6)#自动推导缺省的维度数目
print("c shape: ",c.shape)
print(c)
输出
b shape: (1, 6)
[[0 1 2 3 4 5]]
c shape: (2, 6)
[[ 0 1 2 3 4 5]
[ 6 7 8 9 10 11]]
2、当目标维度元素个数与原数组元素个数不同时
np.reshape() 将报错,
ValueError: cannot reshape array of size 12 into shape (2,5)
而 np.resize() 将采取 少补多删 的方式处理
import numpy as np
a = np.arange(12)
b = np.resize(a,(2,6))
print("b:\n",b)
c = np.resize(a,(2,5))
print("c:\n",c)
d = np.resize(a,(2,7))
print("d:\n",d)
输出
b:
[[ 0 1 2 3 4 5]
[ 6 7 8 9 10 11]]
c:
[[0 1 2 3 4]
[5 6 7 8 9]]
d:
[[ 0 1 2 3 4 5 6]
[ 7 8 9 10 11 0 1]]