reshape(-1,1)的含义

版权声明:站在巨人的肩膀上学习。 https://blog.csdn.net/zgcr654321/article/details/83963528

reshape(-1,1)的意思是在规定了第1号维度上的元素个数是1后,第0号维度的值由numpy自动计算,并保证所有元素的个数与原来的数组元素的个数相等。

如:

import numpy as np

z = np.array([[1, 2, 3, 4],
			  [5, 6, 7, 8],
			  [9, 10, 11, 12],
			  [13, 14, 15, 16]])
print(z.shape)
z1 = z.reshape(-1)
z2 = z.reshape(-1, 1)
z3 = z.reshape(-1, 2)
print(z1, z1.shape)
print(z2, z2.shape)
print(z3, z3.shape)

运行结果如下:

(4, 4)
[ 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16] (16,)
[[ 1]
 [ 2]
 [ 3]
 [ 4]
 [ 5]
 [ 6]
 [ 7]
 [ 8]
 [ 9]
 [10]
 [11]
 [12]
 [13]
 [14]
 [15]
 [16]] (16, 1)
[[ 1  2]
 [ 3  4]
 [ 5  6]
 [ 7  8]
 [ 9 10]
 [11 12]
 [13 14]
 [15 16]] (8, 2)

Process finished with exit code 0

z中有16个元素值,我们作了reshape后得到的z1的shape=(16,),z2的shape=(16,1),这两个16都是numpy自动计算的。其中z1只有一个维度,这个维度的值16就直接计算,z2的第1个维度值为1,第0个维度的值16也是自动计算的。z3的shape=(8,2),我们确定了第1号维度的值为2,就自动计算出了第0号维度的值。

猜你喜欢

转载自blog.csdn.net/zgcr654321/article/details/83963528
今日推荐