import numpy as npa = np.floor(10*np.random.random((3, 4))) # np.random.random生成[0,1)之间的浮点数,np.floor得到不大于输入元素的最大整数print(a)print(a.shape)a.ravel() # ravel将多维数组转化为一维数组,np.ravel()赋值时会改变原始数组,np.flatten()赋值时不会改变原始数组,两a改变数组的形状者都不会a.reshape(6,2) # 临时改变a的形状,不改变a的原始形状print(a.T) # 获得a的转置矩阵print(a.T.shape)print(a.shape)# reshape 函数返回具有修改形状的参数,不改变原始的形状,而 ndarray.resize 方法修改数组本身print(a)a.resize((2, 6))print(a)# 如果在reshape操作中将维度指定为-1,则会自动计算其他维度a.reshape(3, -1) # 第一轴的维度为3,如果第二个参数是-1.则第二轴的维度根据元素个数自动计算# 不同数组叠加在一起a = np.floor(10*np.random.random((2, 2)))b = np.floor(10*np.random.random((2, 2)))np.vstack((a, b)) # 沿着第一轴堆叠起来np.hstack((a, b)) # 沿着第二轴堆叠起来# 函数 column_stack 将1D数组作为列叠加到2D数组中。它相当于仅用于二维数组的 hstackfrom numpy import newaxisnp.column_stack((a, b)) # 2维的相当于np,hstack()a = np.array([4., 2.])b = np.array([3., 8.])np.column_stack((a, b)) # a的值作为新数组的第一列,b的值作为新数组的第二列np.hstack((a, b)) # 而hstack()返回的是一行数组a[:, newaxis] # 增加一个新的维度,此时为a.shape = (2,1)np.column_stack((a[:, newaxis], b[:, newaxis]))np.hstack((a[:, newaxis], b[:, newaxis])) # 现在column_stack和hstack一样了