shape()和reshape()都是数组array中的方法
import numpy as np
a = np.array([1,2,3,4,5,6,7,8]) #一维数组
print(a.shape[0]) #值为8,因为有8个数据
# print(a.shape[1]) #IndexError: tuple index out of range
a = np.array([[1,2,3,4],[5,6,7,8]]) #二维数组
print(a.shape[0]) #值为2,最外层矩阵有2个元素,2个元素还是矩阵。
print(a.shape[1]) #值为4,内层矩阵有4个元素。
# print(a.shape[2]) #IndexError: tuple index out of range
a1=a.reshape((1,-1))
print('he',a1)#将a1转换为1行的矩阵[[1 2 3 4 5 6 7 8]]
a2=a.reshape((-1,1))#将a转换为1列的矩阵
print(a2)
a3=a.reshape((2,-1))#将a转换为2行的矩阵
print('pp',a3) #[[1 2 3 4]
# [5 6 7 8]]
c= np.array([1,2,3,4,5,6,7,8]) #一维数组
d=c.reshape((2,4))#将1维向量c转换为2行4列的二维矩阵
print(d)
e=c.reshape((2,2,2)) #将c转换为3维矩阵,每个维度都是一个2行2列的矩阵,注意这里需要保证转换后的多维矩阵的元素个数与为转换前的向量元素个数保持一致,否则会转换错误
print(e)
c[0]=111
print(c)
print(d)#reshape新生成数组和原数组公用一个内存,不管改变哪个都会互相影响。