3)改变数组形状时,如果维度大于1,可以将“最后一个维度”设置为-1;
p = np.arange(6).reshape(2,3) display(p) # ---------------------------- q = np.arange(6).reshape(2,-1) display(q)
结果如下:
注意:可以这样做的原因在于,当你指明了前面的维度,最后一个维度会根据数组元素个数和前面的维度数,自动计算出最后一个维度的维度数,也就是说【维度一 * 维度二 * … * 维度N = 元素个数】。
6、数组扁平化:ravel()函数和flatten()函数
① 两个函数的相同点
不管你给我的数组是多少维的,通过这两个函数之后,我都给你压缩为一维数组。
② 两个函数的不同点
③ 操作如下
array1 = np.array([[1,2,3],[4,5,6]]) display(array1) array2 = array1.ravel() display(array2) array3 = array1.flatten() display(array3) # 此时我们修改array2和array3中的某个元素,看看对于array1的影响 array2[0] = 666 display(array2) display(array1) array3[1] = 888 display(array3) display(array1)
结果如下: